Updates PlaylistManager to use faster jackson XML serialization.

Removes native xml.bind serialization for improved compatibility with
 Java 9.

 Global optimize imports on the entire project.
This commit is contained in:
Denny
2017-12-21 07:18:26 -05:00
parent 47cc194415
commit ee6aeafa84
303 changed files with 3457 additions and 4687 deletions

View File

@@ -1,74 +1,78 @@
/*******************************************************************************
* SDR Trunk
* Copyright (C) 2014 Dennis Sheirer
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
******************************************************************************/
package io.github.dsheirer.source.config;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.source.SourceType;
import io.github.dsheirer.source.mixer.MixerChannel;
import javax.xml.bind.annotation.XmlAttribute;
@JsonSubTypes.Type(value = SourceConfigMixer.class, name = "sourceConfigMixer")
public class SourceConfigMixer extends SourceConfiguration
{
protected String mMixer;
protected MixerChannel mChannel = MixerChannel.LEFT; //default
public SourceConfigMixer()
protected String mMixer;
protected MixerChannel mChannel = MixerChannel.LEFT; //default
public SourceConfigMixer()
{
super( SourceType.MIXER );
super(SourceType.MIXER);
}
@Override
@JsonIgnore
@Override
public String getDescription()
{
return getName();
return getName();
}
public String getName()
{
StringBuilder sb = new StringBuilder();
sb.append( "Mixer: " );
sb.append( mMixer );
sb.append( "-" );
sb.append( mChannel.toString() );
return sb.toString();
}
@XmlAttribute( name= "mixer" )
public String getMixer()
{
return mMixer;
}
public void setMixer( String mixer )
{
mMixer = mixer;
}
@JsonIgnore
public String getName()
{
StringBuilder sb = new StringBuilder();
@XmlAttribute( name = "channel")
public MixerChannel getChannel()
{
return mChannel;
}
public void setChannel( MixerChannel channel )
{
mChannel = channel;
}
sb.append("Mixer: ");
sb.append(mMixer);
sb.append("-");
sb.append(mChannel.toString());
return sb.toString();
}
@JacksonXmlProperty(isAttribute = true, localName = "mixer")
public String getMixer()
{
return mMixer;
}
public void setMixer(String mixer)
{
mMixer = mixer;
}
@JacksonXmlProperty(isAttribute = true, localName = "channel")
public MixerChannel getChannel()
{
return mChannel;
}
public void setChannel(MixerChannel channel)
{
mChannel = channel;
}
}

View File

@@ -1,34 +1,38 @@
/*******************************************************************************
* SDR Trunk
* Copyright (C) 2014 Dennis Sheirer
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
******************************************************************************/
package io.github.dsheirer.source.config;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import io.github.dsheirer.source.SourceType;
@JsonSubTypes.Type(value = SourceConfigNone.class, name = "sourceConfigNone")
public class SourceConfigNone extends SourceConfiguration
{
public SourceConfigNone()
public SourceConfigNone()
{
super( SourceType.NONE );
super(SourceType.NONE);
}
@Override
@JsonIgnore
@Override
public String getDescription()
{
return "No Source";
return "No Source";
}
}

View File

@@ -17,12 +17,11 @@
******************************************************************************/
package io.github.dsheirer.source.config;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.source.SourceType;
import io.github.dsheirer.source.tuner.TunerChannel;
import io.github.dsheirer.source.tuner.TunerChannel.Type;
import javax.xml.bind.annotation.XmlAttribute;
public class SourceConfigRecording extends SourceConfiguration
{
private String mRecordingAlias;
@@ -32,8 +31,8 @@ public class SourceConfigRecording extends SourceConfiguration
{
super( SourceType.RECORDING );
}
@XmlAttribute( name = "recording_alias" )
@JacksonXmlProperty(isAttribute=true,localName= "recording_alias" )
public String getRecordingAlias()
{
return mRecordingAlias;
@@ -44,7 +43,7 @@ public class SourceConfigRecording extends SourceConfiguration
mRecordingAlias = alias;
}
@XmlAttribute( name = "frequency" )
@JacksonXmlProperty(isAttribute=true,localName= "frequency" )
public long getFrequency()
{
return mFrequency;

View File

@@ -1,68 +1,73 @@
/*******************************************************************************
* SDR Trunk
* Copyright (C) 2014-2016 Dennis Sheirer
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
******************************************************************************/
package io.github.dsheirer.source.config;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.source.SourceType;
import io.github.dsheirer.source.tuner.TunerChannel;
import io.github.dsheirer.source.tuner.TunerChannel.Type;
import javax.xml.bind.annotation.XmlAttribute;
import java.text.DecimalFormat;
@JsonSubTypes.Type(value = SourceConfigTuner.class, name = "sourceConfigTuner")
public class SourceConfigTuner extends SourceConfiguration
{
private static DecimalFormat sFORMAT = new DecimalFormat( "0.00000" );
private static DecimalFormat sFORMAT = new DecimalFormat("0.00000");
private long mFrequency = 0;
private int mBandwidth = 12500;
public SourceConfigTuner()
private long mFrequency = 0;
private int mBandwidth = 12500;
public SourceConfigTuner()
{
super( SourceType.TUNER );
super(SourceType.TUNER);
}
public SourceConfigTuner( TunerChannel tunerChannel )
{
this();
mFrequency = tunerChannel.getFrequency();
mBandwidth = tunerChannel.getBandwidth();
}
@XmlAttribute( name = "frequency" )
public long getFrequency()
{
return mFrequency;
}
public void setFrequency( long frequency )
{
mFrequency = frequency;
}
@Override
public SourceConfigTuner(TunerChannel tunerChannel)
{
this();
mFrequency = tunerChannel.getFrequency();
mBandwidth = tunerChannel.getBandwidth();
}
@JacksonXmlProperty(isAttribute = true, localName = "frequency")
public long getFrequency()
{
return mFrequency;
}
public void setFrequency(long frequency)
{
mFrequency = frequency;
}
@JsonIgnore
@Override
public String getDescription()
{
return sFORMAT.format( (double)mFrequency / 1000000.0d ) + " MHz";
return sFORMAT.format((double)mFrequency / 1000000.0d) + " MHz";
}
@JsonIgnore
public TunerChannel getTunerChannel()
{
return new TunerChannel(Type.LOCKED, mFrequency, mBandwidth);
}
public TunerChannel getTunerChannel()
{
return new TunerChannel( Type.LOCKED, mFrequency, mBandwidth );
}
}

View File

@@ -1,59 +1,74 @@
/*******************************************************************************
* SDR Trunk
* Copyright (C) 2014 Dennis Sheirer
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
******************************************************************************/
package io.github.dsheirer.source.config;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import io.github.dsheirer.controller.config.Configuration;
import io.github.dsheirer.source.SourceType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
@XmlSeeAlso( { SourceConfigMixer.class, SourceConfigNone.class,
SourceConfigTuner.class } )
@XmlRootElement( name = "source_configuration" )
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = SourceConfigMixer.class, name = "sourceConfigMixer"),
@JsonSubTypes.Type(value = SourceConfigNone.class, name = "sourceConfigNone"),
@JsonSubTypes.Type(value = SourceConfigRecording.class, name = "sourceConfigRecording"),
@JsonSubTypes.Type(value = SourceConfigTuner.class, name = "sourceConfigTuner"),
})
@JacksonXmlRootElement(localName = "source_configuration")
public class SourceConfiguration extends Configuration
{
protected SourceType mSourceType;
protected SourceType mSourceType;
public SourceConfiguration()
{
this( SourceType.NONE );
}
public SourceConfiguration( SourceType source )
{
mSourceType = source;
}
public SourceConfiguration()
{
this(SourceType.NONE);
}
@XmlAttribute( name = "source_type" )
public SourceType getSourceType()
{
return mSourceType;
}
public void setSourceType( SourceType source )
{
mSourceType = source;
}
public String getDescription()
{
return "No Source";
}
public SourceConfiguration(SourceType source)
{
mSourceType = source;
}
@JacksonXmlProperty(isAttribute = true, localName = "source_type")
public SourceType getSourceType()
{
return mSourceType;
}
public void setSourceType(SourceType source)
{
mSourceType = source;
}
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
private String getType()
{
return null;
}
private void setType(String type)
{
}
public String getDescription()
{
return "No Source";
}
}