diff --git a/src/Audio/Bass.java b/src/Audio/Bass.java index 15e318c..7cae879 100644 --- a/src/Audio/Bass.java +++ b/src/Audio/Bass.java @@ -6,7 +6,7 @@ import com.sun.jna.*; @SuppressWarnings("unused") public interface Bass extends Library { - Bass Instance = (Bass) Native.load("bass", Bass.class); + Bass Instance = Native.load("bass", Bass.class); int BASSVERSION = 0x204; // API version String BASSVERSIONTEXT = "2.4"; @@ -802,6 +802,7 @@ public interface Bass extends Library { // gak bisa int BASS_StreamCreate(int freq, int chans, int flags, int proc, Pointer user); + @SuppressWarnings("DataFlowIssue") default String GetBassError(String function, int err) { if (err==0) return function+": SUCCESS"; diff --git a/src/Audio/BassEnc.java b/src/Audio/BassEnc.java index e745b4c..f7e9c52 100644 --- a/src/Audio/BassEnc.java +++ b/src/Audio/BassEnc.java @@ -9,9 +9,9 @@ import com.sun.jna.Pointer; * @author rdkartono * */ -@SuppressWarnings("unused") +@SuppressWarnings({"unused", "UnusedReturnValue"}) interface BassEnc extends Library { - BassEnc Instance = (BassEnc) Native.load("bassenc", BassEnc.class); + BassEnc Instance = Native.load("bassenc", BassEnc.class); interface ENCODEPROC extends Callback { diff --git a/src/Audio/BassEncAAC.java b/src/Audio/BassEncAAC.java index 2b25a8c..325eed9 100644 --- a/src/Audio/BassEncAAC.java +++ b/src/Audio/BassEncAAC.java @@ -14,7 +14,7 @@ import Audio.BassEnc.ENCODEPROCEX; @SuppressWarnings("unused") public interface BassEncAAC extends Library { - BassEncAAC Instance = (BassEncAAC) Native.load("bassenc_aac",BassEncAAC.class); + BassEncAAC Instance = Native.load("bassenc_aac",BassEncAAC.class); int BASS_Encode_AAC_GetVersion(); int BASS_Encode_AAC_Start(int handle, String options, int flags, ENCODEPROCEX proc, Pointer user); diff --git a/src/Audio/BassEncMP3.java b/src/Audio/BassEncMP3.java index 4075fc4..cc63e82 100644 --- a/src/Audio/BassEncMP3.java +++ b/src/Audio/BassEncMP3.java @@ -14,7 +14,7 @@ import Audio.BassEnc.ENCODEPROCEX; */ @SuppressWarnings("unused") public interface BassEncMP3 extends Library{ - BassEncMP3 Instance = (BassEncMP3) Native.load("bassenc_mp3",BassEncMP3.class); + BassEncMP3 Instance = Native.load("bassenc_mp3",BassEncMP3.class); int BASS_Encode_MP3_GetVersion(); diff --git a/src/Audio/BassEncOGG.java b/src/Audio/BassEncOGG.java index 292a00a..fcefb28 100644 --- a/src/Audio/BassEncOGG.java +++ b/src/Audio/BassEncOGG.java @@ -14,7 +14,7 @@ import Audio.BassEnc.ENCODEPROC; */ @SuppressWarnings("unused") public interface BassEncOGG extends Library { - BassEncOGG Instance = (BassEncOGG) Native.load("bassenc_ogg",BassEncOGG.class); + BassEncOGG Instance = Native.load("bassenc_ogg",BassEncOGG.class); int BASS_Encode_OGG_GetVersion(); int BASS_Encode_OGG_Start(int handle, String options, int flags, ENCODEPROC proc, Pointer user); diff --git a/src/Audio/BassEncOPUS.java b/src/Audio/BassEncOPUS.java index e0992db..bc9bda4 100644 --- a/src/Audio/BassEncOPUS.java +++ b/src/Audio/BassEncOPUS.java @@ -14,7 +14,7 @@ import Audio.BassEnc.ENCODEPROC; */ @SuppressWarnings("unused") public interface BassEncOPUS extends Library{ - BassEncOPUS BASSENC_OPUS = (BassEncOPUS) Native.load("bassenc_opus",BassEncOPUS.class); + BassEncOPUS BASSENC_OPUS = Native.load("bassenc_opus",BassEncOPUS.class); interface Constant{ // BASS_Encode_OPUS_NewStream flags int BASS_ENCODE_OPUS_RESET = 0x1000000; diff --git a/src/Audio/BassMix.java b/src/Audio/BassMix.java index 709122a..a54800c 100644 --- a/src/Audio/BassMix.java +++ b/src/Audio/BassMix.java @@ -14,7 +14,7 @@ import Audio.Bass.SYNCPROC; */ @SuppressWarnings("unused") public interface BassMix extends Library { - BassMix Instance = (BassMix) Native.load("bassmix",BassMix.class); + BassMix Instance = Native.load("bassmix",BassMix.class); interface Constant{ // Additional BASS_SetConfig options diff --git a/src/Audio/BassOPUS.java b/src/Audio/BassOPUS.java index d70d4c3..c58e383 100644 --- a/src/Audio/BassOPUS.java +++ b/src/Audio/BassOPUS.java @@ -9,7 +9,7 @@ import Audio.Bass.DOWNLOADPROC; @SuppressWarnings("unused") public interface BassOPUS extends Library { - BassOPUS Instance = (BassOPUS) Native.load("bassopus",BassOPUS.class); + BassOPUS Instance = Native.load("bassopus",BassOPUS.class); interface Constant{ // BASS_CHANNELINFO type int BASS_CTYPE_STREAM_OPUS = 0x11200; diff --git a/src/peers/Config.java b/src/peers/Config.java index 165e060..2f6ca78 100644 --- a/src/peers/Config.java +++ b/src/peers/Config.java @@ -24,30 +24,31 @@ import java.net.InetAddress; import peers.media.MediaMode; import peers.sip.syntaxencoding.SipURI; +@SuppressWarnings("unused") public interface Config { - public void save(); - public InetAddress getLocalInetAddress(); - public InetAddress getPublicInetAddress(); - public String getUserPart(); - public String getDomain(); - public String getPassword(); - public SipURI getOutboundProxy(); - public int getSipPort(); - public MediaMode getMediaMode(); - public boolean isMediaDebug(); - public String getMediaFile(); - public int getRtpPort(); - public void setLocalInetAddress(InetAddress inetAddress); - public void setPublicInetAddress(InetAddress inetAddress); - public void setUserPart(String userPart); - public void setDomain(String domain); - public void setPassword(String password); - public void setOutboundProxy(SipURI outboundProxy); - public void setSipPort(int sipPort); - public void setMediaMode(MediaMode mediaMode); - public void setMediaDebug(boolean mediaDebug); - public void setMediaFile(String mediaFile); - public void setRtpPort(int rtpPort); + void save(); + InetAddress getLocalInetAddress(); + InetAddress getPublicInetAddress(); + String getUserPart(); + String getDomain(); + String getPassword(); + SipURI getOutboundProxy(); + int getSipPort(); + MediaMode getMediaMode(); + boolean isMediaDebug(); + String getMediaFile(); + int getRtpPort(); + void setLocalInetAddress(InetAddress inetAddress); + void setPublicInetAddress(InetAddress inetAddress); + void setUserPart(String userPart); + void setDomain(String domain); + void setPassword(String password); + void setOutboundProxy(SipURI outboundProxy); + void setSipPort(int sipPort); + void setMediaMode(MediaMode mediaMode); + void setMediaDebug(boolean mediaDebug); + void setMediaFile(String mediaFile); + void setRtpPort(int rtpPort); } diff --git a/src/peers/JavaConfig.java b/src/peers/JavaConfig.java index c83939f..8243794 100644 --- a/src/peers/JavaConfig.java +++ b/src/peers/JavaConfig.java @@ -24,6 +24,7 @@ import java.net.InetAddress; import peers.media.MediaMode; import peers.sip.syntaxencoding.SipURI; +@SuppressWarnings("unused") public class JavaConfig implements Config { private InetAddress localInetAddress; diff --git a/src/peers/media/AbstractSoundManager.java b/src/peers/media/AbstractSoundManager.java index 236a476..91b0812 100644 --- a/src/peers/media/AbstractSoundManager.java +++ b/src/peers/media/AbstractSoundManager.java @@ -18,6 +18,7 @@ */ package peers.media; +@SuppressWarnings("UnusedReturnValue") public abstract class AbstractSoundManager implements SoundSource { public final static String MEDIA_DIR = "media"; diff --git a/src/peers/media/Capture.java b/src/peers/media/Capture.java index 1fa23a0..6937e34 100644 --- a/src/peers/media/Capture.java +++ b/src/peers/media/Capture.java @@ -33,11 +33,11 @@ public class Capture implements Runnable { public static final int SAMPLE_SIZE = 16; public static final int BUFFER_SIZE = SAMPLE_SIZE * 20; - private PipedOutputStream rawData; + private final PipedOutputStream rawData; private boolean isStopped; - private SoundSource soundSource; + private final SoundSource soundSource; - private CountDownLatch latch; + private final CountDownLatch latch; public Capture(PipedOutputStream rawData, SoundSource soundSource, CountDownLatch latch) { diff --git a/src/peers/media/CaptureRtpSender.java b/src/peers/media/CaptureRtpSender.java index 4f8d794..255634a 100644 --- a/src/peers/media/CaptureRtpSender.java +++ b/src/peers/media/CaptureRtpSender.java @@ -25,6 +25,7 @@ import java.io.PipedOutputStream; import java.util.concurrent.CountDownLatch; +import lombok.Getter; import org.pmw.tinylog.Logger; import peers.rtp.RFC3551; import peers.rtp.RtpSession; @@ -36,10 +37,10 @@ public class CaptureRtpSender { public static final int PIPE_SIZE = 4096; - private RtpSession rtpSession; + private final RtpSession rtpSession; private Capture capture; private Encoder encoder; - private RtpSender rtpSender; + @Getter private RtpSender rtpSender; public CaptureRtpSender(RtpSession rtpSession, SoundSource soundSource, boolean mediaDebug, Codec codec, String peersHome) @@ -123,8 +124,4 @@ public class CaptureRtpSender { return rtpSession; } - public RtpSender getRtpSender() { - return rtpSender; - } - } diff --git a/src/peers/media/DtmfFactory.java b/src/peers/media/DtmfFactory.java index d209306..f32e301 100644 --- a/src/peers/media/DtmfFactory.java +++ b/src/peers/media/DtmfFactory.java @@ -28,7 +28,7 @@ import peers.rtp.RtpPacket; public class DtmfFactory { public List createDtmfPackets(char digit) { - List packets = new ArrayList(); + List packets = new ArrayList<>(); byte[] data = new byte[4]; // RFC4733 if (digit == '*') { diff --git a/src/peers/media/Echo.java b/src/peers/media/Echo.java index 370b9f5..6d88870 100644 --- a/src/peers/media/Echo.java +++ b/src/peers/media/Echo.java @@ -34,9 +34,9 @@ public class Echo implements Runnable { public static final int BUFFER_SIZE = 2048; - private DatagramSocket datagramSocket; - private InetAddress remoteAddress; - private int remotePort; + private final DatagramSocket datagramSocket; + private final InetAddress remoteAddress; + private final int remotePort; private boolean isRunning; diff --git a/src/peers/media/Encoder.java b/src/peers/media/Encoder.java index 24e594d..af4bc97 100644 --- a/src/peers/media/Encoder.java +++ b/src/peers/media/Encoder.java @@ -36,15 +36,15 @@ import java.util.concurrent.CountDownLatch; public abstract class Encoder implements Runnable { - private PipedInputStream rawData; - private PipedOutputStream encodedData; + private final PipedInputStream rawData; + private final PipedOutputStream encodedData; private boolean isStopped; private FileOutputStream encoderOutput; private FileOutputStream encoderInput; - private boolean mediaDebug; + private final boolean mediaDebug; - private String peersHome; - private CountDownLatch latch; + private final String peersHome; + private final CountDownLatch latch; public Encoder(PipedInputStream rawData, PipedOutputStream encodedData, boolean mediaDebug, String peersHome, diff --git a/src/peers/media/FileReader.java b/src/peers/media/FileReader.java index 0aacbb9..e1bfc51 100644 --- a/src/peers/media/FileReader.java +++ b/src/peers/media/FileReader.java @@ -46,6 +46,7 @@ import java.io.IOException; // // Validate +@SuppressWarnings("unused") public class FileReader implements SoundSource { public final static int BUFFER_SIZE = 256; @@ -76,7 +77,7 @@ public class FileReader implements SoundSource { if (fileInputStream == null) { return null; } - byte buffer[] = new byte[BUFFER_SIZE]; + byte[] buffer = new byte[BUFFER_SIZE]; try { if (fileInputStream.read(buffer) >= 0) { Thread.sleep(15); diff --git a/src/peers/media/IncomingRtpReader.java b/src/peers/media/IncomingRtpReader.java index 5e967a0..3bd81f1 100644 --- a/src/peers/media/IncomingRtpReader.java +++ b/src/peers/media/IncomingRtpReader.java @@ -31,9 +31,9 @@ import peers.sdp.Codec; public class IncomingRtpReader implements RtpListener { - private RtpSession rtpSession; - private AbstractSoundManager soundManager; - private Decoder decoder; + private final RtpSession rtpSession; + private final AbstractSoundManager soundManager; + private final Decoder decoder; public IncomingRtpReader(RtpSession rtpSession, AbstractSoundManager soundManager, Codec codec) diff --git a/src/peers/media/MediaManager.java b/src/peers/media/MediaManager.java index 7fc2dc5..a2c8737 100644 --- a/src/peers/media/MediaManager.java +++ b/src/peers/media/MediaManager.java @@ -27,25 +27,28 @@ import java.util.List; import Audio.BassFileReader; +import lombok.Getter; +import lombok.Setter; import org.pmw.tinylog.Logger; import peers.rtp.RtpPacket; import peers.rtp.RtpSession; import peers.sdp.Codec; import peers.sip.core.useragent.UserAgent; +@SuppressWarnings("unused") public class MediaManager { public static final int DEFAULT_CLOCK = 8000; // Hz - private UserAgent userAgent; + private final UserAgent userAgent; private CaptureRtpSender captureRtpSender; private IncomingRtpReader incomingRtpReader; private RtpSession rtpSession; - private DtmfFactory dtmfFactory; + private final DtmfFactory dtmfFactory; - private DatagramSocket datagramSocket; + @Getter @Setter private DatagramSocket datagramSocket; //private FileReader fileReader; - private BassFileReader fileReader; + @Getter private BassFileReader fileReader; public MediaManager(UserAgent userAgent) { this.userAgent = userAgent; @@ -236,30 +239,23 @@ public class MediaManager { public void updateRemote(String destAddress, int destPort, Codec codec) { switch (userAgent.getMediaMode()) { - case captureAndPlayback: - try { - InetAddress inetAddress = InetAddress.getByName(destAddress); - rtpSession.setRemoteAddress(inetAddress); - } catch (UnknownHostException e) { - Logger.error("unknown host: " + destAddress, e); - } - rtpSession.setRemotePort(destPort); - break; - case echo: - //TODO update echo socket - break; - case file: - try { - InetAddress inetAddress = InetAddress.getByName(destAddress); - rtpSession.setRemoteAddress(inetAddress); - } catch (UnknownHostException e) { - Logger.error("unknown host: " + destAddress, e); - } - rtpSession.setRemotePort(destPort); - break; + case file: + case captureAndPlayback: + try { + InetAddress inetAddress = InetAddress.getByName(destAddress); + rtpSession.setRemoteAddress(inetAddress); + } catch (UnknownHostException e) { + Logger.error("unknown host: " + destAddress, e); + } + rtpSession.setRemotePort(destPort); + break; + case echo: + //TODO update echo socket + break; - default: - break; + + default: + break; } } @@ -317,19 +313,10 @@ public class MediaManager { } } - public void setDatagramSocket(DatagramSocket datagramSocket) { - this.datagramSocket = datagramSocket; - } - public DatagramSocket getDatagramSocket() { - return datagramSocket; - } // public FileReader getFileReader() { // return fileReader; // } - - public BassFileReader getFileReader() { - return fileReader; - } + } diff --git a/src/peers/media/PcmaDecoder.java b/src/peers/media/PcmaDecoder.java index 9afdeb7..e2ede8f 100644 --- a/src/peers/media/PcmaDecoder.java +++ b/src/peers/media/PcmaDecoder.java @@ -21,7 +21,7 @@ package peers.media; public class PcmaDecoder extends Decoder { - private static short aLawDecompressTable[] = new short[]{ + private static final short aLawDecompressTable[] = new short[]{ -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736, -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784, -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368, diff --git a/src/peers/media/PcmaEncoder.java b/src/peers/media/PcmaEncoder.java index 4511646..8d9b358 100644 --- a/src/peers/media/PcmaEncoder.java +++ b/src/peers/media/PcmaEncoder.java @@ -28,7 +28,7 @@ import java.util.concurrent.CountDownLatch; public class PcmaEncoder extends Encoder { private final static int cClip = 32635; - private static byte aLawCompressTable[] = new byte[]{ + private final static byte[] aLawCompressTable = new byte[]{ 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, diff --git a/src/peers/media/PcmuDecoder.java b/src/peers/media/PcmuDecoder.java index 8d98465..438deba 100644 --- a/src/peers/media/PcmuDecoder.java +++ b/src/peers/media/PcmuDecoder.java @@ -26,7 +26,7 @@ public class PcmuDecoder extends Decoder { // private final static int SEG_SHIFT = 4; // private final static int SEG_MASK = 0x70; // private final static int SIGN_BIT = 0x80; - private static short muLawDecompressTable[] = new short[]{ + private final static short[] muLawDecompressTable = new short[]{ -32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956, -23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764, -15996, -15484, -14972, -14460, -13948, -13436, -12924, -12412, diff --git a/src/peers/media/PcmuEncoder.java b/src/peers/media/PcmuEncoder.java index e9f7fd9..b4ce9f0 100644 --- a/src/peers/media/PcmuEncoder.java +++ b/src/peers/media/PcmuEncoder.java @@ -25,10 +25,11 @@ import java.util.concurrent.CountDownLatch; +@SuppressWarnings("SameParameterValue") public class PcmuEncoder extends Encoder { private final static int cBias = 0x84; - private final static short seg_end[] = new short[]{0xFF, 0x1FF, 0x3FF, 0x7FF, + private final static short[] seg_end = new short[]{0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF }; diff --git a/src/peers/media/RtpSender.java b/src/peers/media/RtpSender.java index 0abd55b..f32fae7 100644 --- a/src/peers/media/RtpSender.java +++ b/src/peers/media/RtpSender.java @@ -40,16 +40,16 @@ import peers.sdp.Codec; public class RtpSender implements Runnable { - private PipedInputStream encodedData; - private RtpSession rtpSession; + private final PipedInputStream encodedData; + private final RtpSession rtpSession; private boolean isStopped; private FileOutputStream rtpSenderInput; - private boolean mediaDebug; - private Codec codec; - private List pushedPackets; + private final boolean mediaDebug; + private final Codec codec; + private final List pushedPackets; - private String peersHome; - private CountDownLatch latch; + private final String peersHome; + private final CountDownLatch latch; public RtpSender(PipedInputStream encodedData, RtpSession rtpSession, boolean mediaDebug, Codec codec, String peersHome, @@ -62,7 +62,7 @@ public class RtpSender implements Runnable { this.latch = latch; isStopped = false; pushedPackets = Collections.synchronizedList( - new ArrayList()); + new ArrayList<>()); } public void run() { @@ -96,7 +96,7 @@ public class RtpSender implements Runnable { int timestamp = 0; int numBytesRead; int tempBytesRead; - long sleepTime = 0; + long sleepTime ; long offset = 0; long lastSentTime = System.nanoTime(); // indicate if its the first time that we send a packet (dont wait) @@ -130,7 +130,7 @@ public class RtpSender implements Runnable { break; } } - if (pushedPackets.size() > 0) { + if (!pushedPackets.isEmpty()) { RtpPacket pushedPacket = pushedPackets.remove(0); rtpPacket.setMarker(pushedPacket.isMarker()); rtpPacket.setPayloadType(pushedPacket.getPayloadType()); diff --git a/src/peers/media/SoundSource.java b/src/peers/media/SoundSource.java index c8deede..a48806f 100644 --- a/src/peers/media/SoundSource.java +++ b/src/peers/media/SoundSource.java @@ -23,8 +23,8 @@ public interface SoundSource { /** * read raw data linear PCM 8kHz, 16 bits signed, mono-channel, little endian - * @return + * @return raw data */ - public byte[] readData(); + byte[] readData(); } diff --git a/src/peers/nat/Client.java b/src/peers/nat/Client.java index 427669a..b853921 100644 --- a/src/peers/nat/Client.java +++ b/src/peers/nat/Client.java @@ -24,6 +24,7 @@ import java.net.InetAddress; import org.w3c.dom.Document; +@Deprecated public class Client { private Server server; diff --git a/src/peers/nat/PeerManager.java b/src/peers/nat/PeerManager.java index e188bf2..8453bfe 100644 --- a/src/peers/nat/PeerManager.java +++ b/src/peers/nat/PeerManager.java @@ -25,6 +25,8 @@ import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; +import lombok.Setter; +import org.pmw.tinylog.Logger; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -32,25 +34,22 @@ import org.w3c.dom.NodeList; public class PeerManager extends Thread { - private InetAddress localAddress; - private int localPort; - private Document document; + private final InetAddress localAddress; + private final int localPort; + @Setter private Document document; public PeerManager(InetAddress localAddress, int localPort) { this.localAddress = localAddress; this.localPort = localPort; } - public void setDocument(Document document) { - this.document = document; - } public void run() { DatagramSocket datagramSocket; try { datagramSocket = new DatagramSocket(localPort, localAddress); } catch (SocketException e) { - e.printStackTrace(); + Logger.error(e.getMessage()); return; } // UDPReceiver udpReceiver = new UDPReceiver(datagramSocket); @@ -67,7 +66,7 @@ public class PeerManager extends Thread { try { Thread.sleep(30000); } catch (InterruptedException e) { - e.printStackTrace(); + Logger.error(e.getMessage()); return; } } @@ -103,15 +102,14 @@ public class PeerManager extends Thread { try { Thread.sleep(5000); } catch (InterruptedException e) { - e.printStackTrace(); + Logger.error(e.getMessage()); return; } } //datagramSocket.close(); } catch (IOException e) { - e.printStackTrace(); - return; + Logger.error(e.getMessage()); } } } diff --git a/src/peers/nat/UDPReceiver.java b/src/peers/nat/UDPReceiver.java index efae8e3..0e7af30 100644 --- a/src/peers/nat/UDPReceiver.java +++ b/src/peers/nat/UDPReceiver.java @@ -19,13 +19,16 @@ package peers.nat; +import org.pmw.tinylog.Logger; + import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; +@SuppressWarnings("unused") public class UDPReceiver extends Thread { - private DatagramSocket datagramSocket; + private final DatagramSocket datagramSocket; public UDPReceiver(DatagramSocket datagramSocket) { super(); @@ -43,7 +46,7 @@ public class UDPReceiver extends Thread { + new String(packet.getData())); } } catch (IOException e) { - e.printStackTrace(); + Logger.error(e.getMessage()); } } } diff --git a/src/peers/nat/api/DataReceiver.java b/src/peers/nat/api/DataReceiver.java index 7206c68..8137745 100644 --- a/src/peers/nat/api/DataReceiver.java +++ b/src/peers/nat/api/DataReceiver.java @@ -19,8 +19,8 @@ package peers.nat.api; - +@SuppressWarnings("unused") public interface DataReceiver { - public void dataReceived(byte[] data, String peerId); + void dataReceived(byte[] data, String peerId); } diff --git a/src/peers/nat/api/PeersClient.java b/src/peers/nat/api/PeersClient.java index 6f7a9eb..4fd47f8 100644 --- a/src/peers/nat/api/PeersClient.java +++ b/src/peers/nat/api/PeersClient.java @@ -19,6 +19,7 @@ package peers.nat.api; +@SuppressWarnings("unused") public abstract class PeersClient { /** diff --git a/src/peers/nat/api/Transport.java b/src/peers/nat/api/Transport.java index 7769c63..3bcaf32 100644 --- a/src/peers/nat/api/Transport.java +++ b/src/peers/nat/api/Transport.java @@ -19,7 +19,8 @@ package peers.nat.api; +@SuppressWarnings("unused") public interface Transport { - public void sendData(byte[] data); + void sendData(byte[] data); } diff --git a/src/peers/rtp/RtpPacket.java b/src/peers/rtp/RtpPacket.java index d862e9d..b7a0f55 100644 --- a/src/peers/rtp/RtpPacket.java +++ b/src/peers/rtp/RtpPacket.java @@ -19,6 +19,10 @@ package peers.rtp; +import lombok.Getter; +import lombok.Setter; + +@Getter @Setter public class RtpPacket { private int version; @@ -33,92 +37,4 @@ public class RtpPacket { private long[] csrcList; private byte[] data; - public int getVersion() { - return version; - } - - public void setVersion(int version) { - this.version = version; - } - - public boolean isPadding() { - return padding; - } - - public void setPadding(boolean padding) { - this.padding = padding; - } - - public boolean isExtension() { - return extension; - } - - public void setExtension(boolean extension) { - this.extension = extension; - } - - public int getCsrcCount() { - return csrcCount; - } - - public void setCsrcCount(int csrcCount) { - this.csrcCount = csrcCount; - } - - public boolean isMarker() { - return marker; - } - - public void setMarker(boolean marker) { - this.marker = marker; - } - - public int getPayloadType() { - return payloadType; - } - - public void setPayloadType(int payloadType) { - this.payloadType = payloadType; - } - - public int getSequenceNumber() { - return sequenceNumber; - } - - public void setSequenceNumber(int sequenceNumber) { - this.sequenceNumber = sequenceNumber; - } - - public long getTimestamp() { - return timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - - public long getSsrc() { - return ssrc; - } - - public void setSsrc(long ssrc) { - this.ssrc = ssrc; - } - - public long[] getCsrcList() { - return csrcList; - } - - public void setCsrcList(long[] csrcList) { - this.csrcList = csrcList; - } - - public byte[] getData() { - return data; - } - - public void setData(byte[] data) { - this.data = data; - } - } diff --git a/src/peers/rtp/RtpParser.java b/src/peers/rtp/RtpParser.java index e5b4c60..30e7cad 100644 --- a/src/peers/rtp/RtpParser.java +++ b/src/peers/rtp/RtpParser.java @@ -34,32 +34,32 @@ public class RtpParser { return null; } RtpPacket rtpPacket = new RtpPacket(); - int b = (int)(packet[0] & 0xff); + int b = (packet[0] & 0xff); rtpPacket.setVersion((b & 0xc0) >> 6); rtpPacket.setPadding((b & 0x20) != 0); rtpPacket.setExtension((b & 0x10) != 0); rtpPacket.setCsrcCount(b & 0x0f); - b = (int)(packet[1] & 0xff); + b = (packet[1] & 0xff); rtpPacket.setMarker((b & 0x80) != 0); rtpPacket.setPayloadType(b & 0x7f); - b = (int)(packet[2] & 0xff); - rtpPacket.setSequenceNumber(b * 256 + (int)(packet[3] & 0xff)); - b = (int)(packet[4] & 0xff); - rtpPacket.setTimestamp(b * 256 * 256 * 256 - + (int)(packet[5] & 0xff) * 256 * 256 - + (int)(packet[6] & 0xff) * 256 - + (int)(packet[7] & 0xff)); - b = (int)(packet[8] & 0xff); - rtpPacket.setSsrc(b * 256 * 256 * 256 - + (int)(packet[9] & 0xff) * 256 * 256 - + (int)(packet[10] & 0xff) * 256 - + (int)(packet[11] & 0xff)); + b = (packet[2] & 0xff); + rtpPacket.setSequenceNumber(b * 256 + (packet[3] & 0xff)); + b = (packet[4] & 0xff); + rtpPacket.setTimestamp((long) b * 256 * 256 * 256 + + (packet[5] & 0xff) * 256 * 256 + + (packet[6] & 0xff) * 256 + + (packet[7] & 0xff)); + b = (packet[8] & 0xff); + rtpPacket.setSsrc((long) b * 256 * 256 * 256 + + (packet[9] & 0xff) * 256 * 256 + + (packet[10] & 0xff) * 256 + + (packet[11] & 0xff)); long[] csrcList = new long[rtpPacket.getCsrcCount()]; for (int i = 0; i < csrcList.length; ++i) - csrcList[i] = (int)(packet[12 + i] & 0xff) << 24 - + (int)(packet[12 + i + 1] & 0xff) << 16 - + (int)(packet[12 + i + 2] & 0xff) << 8 - + (int)(packet[12 + i + 3] & 0xff); + csrcList[i] = (long) (packet[12 + i] & 0xff) << 24 + + (packet[12 + i + 1] & 0xff) << 16 + + (packet[12 + i + 2] & 0xff) << 8 + + (packet[12 + i + 3] & 0xff); rtpPacket.setCsrcList(csrcList); int dataOffset = 12 + csrcList.length * 4; int dataLength = packet.length - dataOffset; diff --git a/src/peers/sdp/Codec.java b/src/peers/sdp/Codec.java index 5462403..e4a7d72 100644 --- a/src/peers/sdp/Codec.java +++ b/src/peers/sdp/Codec.java @@ -19,29 +19,16 @@ package peers.sdp; +import lombok.Getter; +import lombok.Setter; import peers.media.MediaManager; +@Getter @Setter public class Codec { private int payloadType; private String name; - public int getPayloadType() { - return payloadType; - } - - public void setPayloadType(int payloadType) { - this.payloadType = payloadType; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - @Override public boolean equals(Object obj) { if (!(obj instanceof Codec)) { diff --git a/src/peers/sdp/MediaDescription.java b/src/peers/sdp/MediaDescription.java index cf950cb..03298bb 100644 --- a/src/peers/sdp/MediaDescription.java +++ b/src/peers/sdp/MediaDescription.java @@ -19,12 +19,16 @@ package peers.sdp; +import lombok.Getter; +import lombok.Setter; + import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; import java.util.Hashtable; import java.util.List; +@Getter @Setter public class MediaDescription { private String type; @@ -34,49 +38,9 @@ public class MediaDescription { private int port; private List codecs; - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public Hashtable getAttributes() { - return attributes; - } - - public void setAttributes(Hashtable attributes) { - this.attributes = attributes; - } - - public InetAddress getIpAddress() { - return ipAddress; - } - - public void setIpAddress(InetAddress ipAddress) { - this.ipAddress = ipAddress; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public List getCodecs() { - return codecs; - } - - public void setCodecs(List codecs) { - this.codecs = codecs; - } - @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); buf.append(RFC4566.TYPE_MEDIA).append(RFC4566.SEPARATOR); buf.append(type).append(" ").append(port); buf.append(" RTP/AVP"); @@ -106,7 +70,7 @@ public class MediaDescription { buf.append(RFC4566.TYPE_ATTRIBUTE).append(RFC4566.SEPARATOR); buf.append(attributeName); String attributeValue = attributes.get(attributeName); - if (attributeValue != null && !"".equals(attributeValue.trim())) { + if (attributeValue != null && !attributeValue.trim().isEmpty()) { buf.append(":").append(attributeValue); } buf.append("\r\n"); diff --git a/src/peers/sdp/MediaDestination.java b/src/peers/sdp/MediaDestination.java index e272d45..094a6ff 100644 --- a/src/peers/sdp/MediaDestination.java +++ b/src/peers/sdp/MediaDestination.java @@ -19,34 +19,14 @@ package peers.sdp; +import lombok.Getter; +import lombok.Setter; + +@Getter @Setter public class MediaDestination { private String destination; private int port; private Codec codec; - public String getDestination() { - return destination; - } - - public void setDestination(String destination) { - this.destination = destination; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public Codec getCodec() { - return codec; - } - - public void setCodec(Codec codec) { - this.codec = codec; - } - } diff --git a/src/peers/sdp/RFC4566.java b/src/peers/sdp/RFC4566.java index 519cc6e..178353b 100644 --- a/src/peers/sdp/RFC4566.java +++ b/src/peers/sdp/RFC4566.java @@ -19,6 +19,7 @@ package peers.sdp; +@SuppressWarnings("unused") public class RFC4566 { public static final char VERSION = '0'; diff --git a/src/peers/sdp/SDPManager.java b/src/peers/sdp/SDPManager.java index c8f466f..31ad4ec 100644 --- a/src/peers/sdp/SDPManager.java +++ b/src/peers/sdp/SDPManager.java @@ -35,17 +35,17 @@ import peers.sip.core.useragent.UserAgent; public class SDPManager { - private SdpParser sdpParser; - private UserAgent userAgent; - private List supportedCodecs; - private Random random; + private final SdpParser sdpParser; + private final UserAgent userAgent; + private final List supportedCodecs; + private final Random random; public SDPManager(UserAgent userAgent) { this.userAgent = userAgent; sdpParser = new SdpParser(); - supportedCodecs = new ArrayList(); + supportedCodecs = new ArrayList<>(); random = new Random(); //TODO retrieve codecs from configuration file Codec codec = new Codec(); @@ -116,12 +116,12 @@ public class SDPManager { } sessionDescription.setIpAddress(inetAddress); sessionDescription.setName("-"); - sessionDescription.setAttributes(new Hashtable()); + sessionDescription.setAttributes(new Hashtable<>()); List codecs; if (offer == null) { codecs = supportedCodecs; } else { - codecs = new ArrayList(); + codecs = new ArrayList<>(); for (MediaDescription mediaDescription: offer.getMediaDescriptions()) { if (RFC4566.MEDIA_AUDIO.equals(mediaDescription.getType())) { @@ -134,14 +134,14 @@ public class SDPManager { } } MediaDescription mediaDescription = new MediaDescription(); - Hashtable attributes = new Hashtable(); + Hashtable attributes = new Hashtable<>(); attributes.put(RFC4566.ATTR_SENDRECV, ""); mediaDescription.setAttributes(attributes); mediaDescription.setType(RFC4566.MEDIA_AUDIO); mediaDescription.setPort(localRtpPort); mediaDescription.setCodecs(codecs); List mediaDescriptions = - new ArrayList(); + new ArrayList<>(); mediaDescriptions.add(mediaDescription); sessionDescription.setMediaDescriptions(mediaDescriptions); return sessionDescription; diff --git a/src/peers/sdp/SdpLine.java b/src/peers/sdp/SdpLine.java index 6e32d4e..a5819be 100644 --- a/src/peers/sdp/SdpLine.java +++ b/src/peers/sdp/SdpLine.java @@ -19,20 +19,11 @@ package peers.sdp; +import lombok.Getter; +import lombok.Setter; + +@Getter @Setter public class SdpLine { private char type; private String value; - public char getType() { - return type; - } - public void setType(char type) { - this.type = type; - } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } - } diff --git a/src/peers/sdp/SessionDescription.java b/src/peers/sdp/SessionDescription.java index bb167be..7ad6ec0 100644 --- a/src/peers/sdp/SessionDescription.java +++ b/src/peers/sdp/SessionDescription.java @@ -19,81 +19,30 @@ package peers.sdp; +import lombok.Getter; +import lombok.Setter; + import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; import java.util.Hashtable; import java.util.List; +@Getter @Setter public class SessionDescription { - private long id; private long version; private String name; private String username; - private InetAddress ipAddress; + + private InetAddress ipAddress; private List mediaDescriptions; private Hashtable attributes; - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public InetAddress getIpAddress() { - return ipAddress; - } - - public void setIpAddress(InetAddress ipAddress) { - this.ipAddress = ipAddress; - } - - public List getMediaDescriptions() { - return mediaDescriptions; - } - - public void setMediaDescriptions(List mediaDescriptions) { - this.mediaDescriptions = mediaDescriptions; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public long getVersion() { - return version; - } - - public void setVersion(long version) { - this.version = version; - } - - public Hashtable getAttributes() { - return attributes; - } - - public void setAttributes(Hashtable attributes) { - this.attributes = attributes; - } - + @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); buf.append("v=0\r\n"); buf.append("o=").append(username).append(" ").append(id); buf.append(" ").append(version); @@ -115,7 +64,7 @@ public class SessionDescription { for (String attributeName: attributes.keySet()) { String attributeValue = attributes.get(attributeName); buf.append("a=").append(attributeName); - if (attributeValue != null && !"".equals(attributeValue.trim())) { + if (attributeValue != null && !attributeValue.trim().isEmpty()) { buf.append(":"); buf.append(attributeValue); buf.append("\r\n"); diff --git a/src/peers/sip/AbstractState.java b/src/peers/sip/AbstractState.java index 7d51c6a..47936d7 100644 --- a/src/peers/sip/AbstractState.java +++ b/src/peers/sip/AbstractState.java @@ -32,12 +32,11 @@ public abstract class AbstractState { } public void log(AbstractState state) { - StringBuffer buf = new StringBuffer(); - buf.append("SM ").append(id).append(" ["); - buf.append(JavaUtils.getShortClassName(this.getClass())).append(" -> "); - buf.append(JavaUtils.getShortClassName(state.getClass())).append("] "); - buf.append(new Exception().getStackTrace()[1].getMethodName()); - Logger.debug(buf.toString()); + String buf = "SM " + id + " [" + + JavaUtils.getShortClassName(this.getClass()) + " -> " + + JavaUtils.getShortClassName(state.getClass()) + "] " + + new Exception().getStackTrace()[1].getMethodName(); + Logger.debug(buf); } } diff --git a/src/peers/sip/Utils.java b/src/peers/sip/Utils.java index 1cd046a..7f67e1d 100644 --- a/src/peers/sip/Utils.java +++ b/src/peers/sip/Utils.java @@ -29,13 +29,13 @@ import peers.sip.syntaxencoding.SipHeaderFieldValue; import peers.sip.syntaxencoding.SipHeaders; import peers.sip.transport.SipMessage; - +@SuppressWarnings("unused") public class Utils { public static final String PEERSHOME_SYSTEM_PROPERTY = "peers.home"; public static final String DEFAULT_PEERS_HOME = "."; - public final static SipHeaderFieldValue getTopVia(SipMessage sipMessage) { + public static SipHeaderFieldValue getTopVia(SipMessage sipMessage) { SipHeaders sipHeaders = sipMessage.getSipHeaders(); SipHeaderFieldName viaName = new SipHeaderFieldName(RFC3261.HDR_VIA); SipHeaderFieldValue via = sipHeaders.get(viaName); @@ -45,40 +45,37 @@ public class Utils { return via; } - public final static String generateTag() { + public static String generateTag() { return randomString(8); } - public final static String generateCallID(InetAddress inetAddress) { + public static String generateCallID(InetAddress inetAddress) { //TODO make a hash using current time millis, public ip @, private @, and a random string - StringBuffer buf = new StringBuffer(); - buf.append(randomString(8)); - buf.append('-'); - buf.append(String.valueOf(System.currentTimeMillis())); - buf.append('@'); - buf.append(inetAddress.getHostName()); - return buf.toString(); + return randomString(8) + + '-' + + System.currentTimeMillis() + + '@' + + inetAddress.getHostName(); } - public final static String generateBranchId() { - StringBuffer buf = new StringBuffer(); - buf.append(RFC3261.BRANCHID_MAGIC_COOKIE); + public static String generateBranchId() { //TODO must be unique across space and time... - buf.append(randomString(9)); - return buf.toString(); + return RFC3261.BRANCHID_MAGIC_COOKIE + + //TODO must be unique across space and time... + randomString(9); } - public final static String getMessageCallId(SipMessage sipMessage) { + public static String getMessageCallId(SipMessage sipMessage) { SipHeaderFieldValue callId = sipMessage.getSipHeaders().get( new SipHeaderFieldName(RFC3261.HDR_CALLID)); return callId.getValue(); } - public final static String randomString(int length) { + public static String randomString(int length) { String chars = "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIFKLMNOPRSTUVWXYZ" + "0123456789"; - StringBuffer buf = new StringBuffer(length); + StringBuilder buf = new StringBuilder(length); for (int i = 0; i < length; ++i) { int pos = (int)Math.round(Math.random() * (chars.length() - 1)); buf.append(chars.charAt(pos)); @@ -86,7 +83,7 @@ public class Utils { return buf.toString(); } - public final static void copyHeader(SipMessage src, SipMessage dst, String name) { + public static void copyHeader(SipMessage src, SipMessage dst, String name) { SipHeaderFieldName sipHeaderFieldName = new SipHeaderFieldName(name); SipHeaderFieldValue sipHeaderFieldValue = src.getSipHeaders().get(sipHeaderFieldName); if (sipHeaderFieldValue != null) { @@ -94,7 +91,7 @@ public class Utils { } } - public final static String getUserPart(String sipUri) { + public static String getUserPart(String sipUri) { int start = sipUri.indexOf(RFC3261.SCHEME_SEPARATOR); int end = sipUri.indexOf(RFC3261.AT); return sipUri.substring(start + 1, end); @@ -102,9 +99,9 @@ public class Utils { /** * adds Max-Forwards Supported and Require headers - * @param headers + * @param headers the headers to add to */ - public final static void addCommonHeaders(SipHeaders headers) { + public static void addCommonHeaders(SipHeaders headers) { //Max-Forwards headers.add(new SipHeaderFieldName(RFC3261.HDR_MAX_FORWARDS), @@ -114,8 +111,8 @@ public class Utils { //TODO Supported and Require } - public final static String generateAllowHeader() { - StringBuffer buf = new StringBuffer(); + public static String generateAllowHeader() { + StringBuilder buf = new StringBuilder(); for (String supportedMethod: UAS.SUPPORTED_METHODS) { buf.append(supportedMethod); buf.append(", "); diff --git a/src/peers/sip/core/useragent/MessageInterceptor.java b/src/peers/sip/core/useragent/MessageInterceptor.java index 31f0041..3324285 100644 --- a/src/peers/sip/core/useragent/MessageInterceptor.java +++ b/src/peers/sip/core/useragent/MessageInterceptor.java @@ -23,5 +23,5 @@ import peers.sip.transport.SipMessage; public interface MessageInterceptor { - public void postProcess(SipMessage sipMessage); + void postProcess(SipMessage sipMessage); } diff --git a/src/peers/sip/core/useragent/SipEvent.java b/src/peers/sip/core/useragent/SipEvent.java index 2692cac..c239fc4 100644 --- a/src/peers/sip/core/useragent/SipEvent.java +++ b/src/peers/sip/core/useragent/SipEvent.java @@ -19,28 +19,24 @@ package peers.sip.core.useragent; +import lombok.Getter; import peers.sip.transport.SipMessage; +@SuppressWarnings("unused") public class SipEvent { public enum EventType { - ERROR, RINGING, INCOMING_CALL, CALLEE_PICKUP; + ERROR, RINGING, INCOMING_CALL, CALLEE_PICKUP } - private EventType eventType; - private SipMessage sipMessage; + @Getter private final EventType eventType; + @Getter private final SipMessage sipMessage; public SipEvent(EventType type, SipMessage sipMessage) { this.eventType = type; this.sipMessage = sipMessage; } - public SipMessage getSipMessage() { - return sipMessage; - } - public EventType getEventType() { - return eventType; - } } diff --git a/src/peers/sip/core/useragent/SipListener.java b/src/peers/sip/core/useragent/SipListener.java index da87b4e..1881271 100644 --- a/src/peers/sip/core/useragent/SipListener.java +++ b/src/peers/sip/core/useragent/SipListener.java @@ -25,20 +25,20 @@ import peers.sip.transport.SipResponse; public interface SipListener { - public void registering(SipRequest sipRequest); + void registering(SipRequest sipRequest); - public void registerSuccessful(SipResponse sipResponse); + void registerSuccessful(SipResponse sipResponse); - public void registerFailed(SipResponse sipResponse); + void registerFailed(SipResponse sipResponse); - public void incomingCall(SipRequest sipRequest, SipResponse provResponse); + void incomingCall(SipRequest sipRequest, SipResponse provResponse); - public void remoteHangup(SipRequest sipRequest); + void remoteHangup(SipRequest sipRequest); - public void ringing(SipResponse sipResponse); + void ringing(SipResponse sipResponse); - public void calleePickup(SipResponse sipResponse); + void calleePickup(SipResponse sipResponse); - public void error(SipResponse sipResponse); + void error(SipResponse sipResponse); } diff --git a/src/peers/sip/syntaxencoding/RunnableSipParser.java b/src/peers/sip/syntaxencoding/RunnableSipParser.java index f262ec0..9bab2a1 100644 --- a/src/peers/sip/syntaxencoding/RunnableSipParser.java +++ b/src/peers/sip/syntaxencoding/RunnableSipParser.java @@ -19,6 +19,7 @@ package peers.sip.syntaxencoding; +@SuppressWarnings("unused") public class RunnableSipParser implements Runnable { public void run() { diff --git a/src/peers/sip/syntaxencoding/SipHeader.java b/src/peers/sip/syntaxencoding/SipHeader.java index 693b621..26089ba 100644 --- a/src/peers/sip/syntaxencoding/SipHeader.java +++ b/src/peers/sip/syntaxencoding/SipHeader.java @@ -19,10 +19,14 @@ package peers.sip.syntaxencoding; +import lombok.Getter; +import lombok.Setter; + +@Getter public class SipHeader { - private SipHeaderFieldName name; - private SipHeaderFieldValue value; + private final SipHeaderFieldName name; + private @Setter SipHeaderFieldValue value; SipHeader(SipHeaderFieldName name, SipHeaderFieldValue value) { super(); @@ -38,17 +42,5 @@ public class SipHeader { } return false; } - - public SipHeaderFieldName getName() { - return name; - } - - public SipHeaderFieldValue getValue() { - return value; - } - - public void setValue(SipHeaderFieldValue value) { - this.value = value; - } } diff --git a/src/peers/sip/syntaxencoding/SipHeaderFieldMultiValue.java b/src/peers/sip/syntaxencoding/SipHeaderFieldMultiValue.java index 16aedda..edd9a35 100644 --- a/src/peers/sip/syntaxencoding/SipHeaderFieldMultiValue.java +++ b/src/peers/sip/syntaxencoding/SipHeaderFieldMultiValue.java @@ -19,11 +19,13 @@ package peers.sip.syntaxencoding; +import lombok.Getter; + import java.util.List; public class SipHeaderFieldMultiValue extends SipHeaderFieldValue { - private List values; + @Getter private final List values; private static String toString(List list) { if (list == null) { @@ -38,10 +40,7 @@ public class SipHeaderFieldMultiValue extends SipHeaderFieldValue { this.values = values; } - public List getValues() { - return values; - } - + @Override public String toString() { return toString(values); diff --git a/src/peers/sip/syntaxencoding/SipHeaderFieldName.java b/src/peers/sip/syntaxencoding/SipHeaderFieldName.java index 7414fce..8f0305c 100644 --- a/src/peers/sip/syntaxencoding/SipHeaderFieldName.java +++ b/src/peers/sip/syntaxencoding/SipHeaderFieldName.java @@ -19,12 +19,14 @@ package peers.sip.syntaxencoding; +import lombok.Getter; + public class SipHeaderFieldName { private final static SipHeadersTable SIP_HEADER_TABLE = new SipHeadersTable(); - private String name; + @Getter private final String name; public SipHeaderFieldName(String name) { super(); @@ -41,10 +43,7 @@ public class SipHeaderFieldName { return false; } String objName = ((SipHeaderFieldName)obj).getName(); - if (name.equalsIgnoreCase(objName)) { - return true; - } - return false; + return name.equalsIgnoreCase(objName); } @Override @@ -52,10 +51,6 @@ public class SipHeaderFieldName { return name.hashCode(); } - public String getName() { - return name; - } - @Override public String toString() { return name; diff --git a/src/peers/sip/syntaxencoding/SipHeaderFieldValue.java b/src/peers/sip/syntaxencoding/SipHeaderFieldValue.java index 535a961..7511ed5 100644 --- a/src/peers/sip/syntaxencoding/SipHeaderFieldValue.java +++ b/src/peers/sip/syntaxencoding/SipHeaderFieldValue.java @@ -21,14 +21,16 @@ package peers.sip.syntaxencoding; import java.util.HashMap; +import lombok.Getter; +import lombok.Setter; import peers.sip.RFC3261; public class SipHeaderFieldValue { - private String value; + @Getter @Setter private String value; - private HashMap params; + private final HashMap params; public SipHeaderFieldValue(String value) { int startPos = value.indexOf(RFC3261.RIGHT_ANGLE_BRACKET); @@ -46,7 +48,7 @@ public class SipHeaderFieldValue { this.value = value; paramsString = ""; } - params = new HashMap(); + params = new HashMap<>(); if (paramsString.contains(RFC3261.PARAM_SEPARATOR)) { String[] arr = paramsString.split(RFC3261.PARAM_SEPARATOR); if (arr.length > 1) { @@ -76,24 +78,18 @@ public class SipHeaderFieldValue { params.remove(name); } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } @Override public String toString() { if (params == null || params.isEmpty()) { return value; } - StringBuffer buf = new StringBuffer(value); + StringBuilder buf = new StringBuilder(value); for (SipHeaderParamName name: params.keySet()) { buf.append(RFC3261.PARAM_SEPARATOR).append(name); String value = params.get(name); - if (!"".equals(value.trim())) { + if (!value.trim().isEmpty()) { buf.append(RFC3261.PARAM_ASSIGNMENT).append(value); } } diff --git a/src/peers/sip/syntaxencoding/SipHeaderParamName.java b/src/peers/sip/syntaxencoding/SipHeaderParamName.java index ae56918..ae2d812 100644 --- a/src/peers/sip/syntaxencoding/SipHeaderParamName.java +++ b/src/peers/sip/syntaxencoding/SipHeaderParamName.java @@ -19,19 +19,17 @@ package peers.sip.syntaxencoding; +import lombok.Getter; + public class SipHeaderParamName { - private String name; + @Getter private String name; public SipHeaderParamName(String name) { this.name = name; } - public String getName() { - return name; - } - @Override public boolean equals(Object obj) { if (obj == null) { diff --git a/src/peers/sip/syntaxencoding/SipHeaders.java b/src/peers/sip/syntaxencoding/SipHeaders.java index 550128e..29cfef2 100644 --- a/src/peers/sip/syntaxencoding/SipHeaders.java +++ b/src/peers/sip/syntaxencoding/SipHeaders.java @@ -24,19 +24,19 @@ import java.util.ArrayList; import peers.sip.RFC3261; - +@SuppressWarnings("unused") public class SipHeaders { - private ArrayList headers; + private final ArrayList headers; public SipHeaders() { - headers = new ArrayList(); + headers = new ArrayList<>(); } /** * - * @param name - * @param value + * @param name SipHeaderFieldName + * @param value SipHeaderFieldValue * @param index -1 to add at the end */ public void add(SipHeaderFieldName name, SipHeaderFieldValue value, int index) { @@ -49,7 +49,7 @@ public class SipHeaders { SipHeaderFieldMultiValue oldMultiVal = (SipHeaderFieldMultiValue) oldValue; oldMultiVal.getValues().add(value); } else { - ArrayList arr = new ArrayList(); + ArrayList arr = new ArrayList<>(); arr.add(oldValue); arr.add(value); header.setValue(new SipHeaderFieldMultiValue(arr)); @@ -90,7 +90,7 @@ public class SipHeaders { @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); for (SipHeader header : headers) { buf.append(header.getName().toString()); buf.append(": "); diff --git a/src/peers/sip/syntaxencoding/SipHeadersTable.java b/src/peers/sip/syntaxencoding/SipHeadersTable.java index 790de82..7251716 100644 --- a/src/peers/sip/syntaxencoding/SipHeadersTable.java +++ b/src/peers/sip/syntaxencoding/SipHeadersTable.java @@ -26,13 +26,13 @@ import peers.sip.RFC3261; public class SipHeadersTable { - private HashMap headers; + private final HashMap headers; /** * should be instanciated only once, it was a singleton. */ public SipHeadersTable() { - headers = new HashMap(); + headers = new HashMap<>(); //RFC 3261 Section 10 headers.put(RFC3261.COMPACT_HDR_CALLID, RFC3261.HDR_CALLID); headers.put(RFC3261.COMPACT_HDR_CONTACT, RFC3261.HDR_CONTACT); diff --git a/src/peers/sip/syntaxencoding/SipParser.java b/src/peers/sip/syntaxencoding/SipParser.java index 474971d..69fd1bf 100644 --- a/src/peers/sip/syntaxencoding/SipParser.java +++ b/src/peers/sip/syntaxencoding/SipParser.java @@ -38,10 +38,10 @@ public class SipParser { private final static int BUFF_SIZE = 1024; - private List singleValueHeaders; + private final List singleValueHeaders; public SipParser() { - singleValueHeaders = new ArrayList(); + singleValueHeaders = new ArrayList<>(); singleValueHeaders.add(new SipHeaderFieldName( RFC3261.HDR_WWW_AUTHENTICATE)); singleValueHeaders.add(new SipHeaderFieldName( @@ -63,7 +63,7 @@ public class SipParser { reader = new BufferedReader(inputStreamReader); String startLine = reader.readLine(); - while (startLine == null || startLine.equals("")) { + while (startLine == null || startLine.isEmpty()) { startLine = reader.readLine(); } SipMessage sipMessage; @@ -83,7 +83,7 @@ public class SipParser { if (params.length != 3) { throw new SipParserException("invalid request line"); } - if (!RFC3261.DEFAULT_SIP_VERSION.equals(params[2].toUpperCase())) { + if (!RFC3261.DEFAULT_SIP_VERSION.equalsIgnoreCase(params[2])) { throw new SipParserException("unsupported SIP version"); } SipURI requestUri; @@ -100,10 +100,10 @@ public class SipParser { if (params.length < 3) { throw new SipParserException("incorrect status line"); } - if (!RFC3261.DEFAULT_SIP_VERSION.equals(params[0].toUpperCase())) { + if (!RFC3261.DEFAULT_SIP_VERSION.equalsIgnoreCase(params[0])) { throw new SipParserException("unsupported SIP version"); } - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); for (int i = 2; i < params.length; ++i) { buf.append(params[i]).append(" "); } @@ -121,7 +121,7 @@ public class SipParser { String nextLine = reader.readLine(); if (nextLine != null && (nextLine.startsWith(" ") || nextLine.startsWith("\t"))) { - StringBuffer buf = new StringBuffer(headerLine); + StringBuilder buf = new StringBuilder(headerLine); while (nextLine != null && (nextLine.startsWith(" ") || nextLine.startsWith("\t"))) { buf.append(' '); @@ -142,10 +142,10 @@ public class SipParser { String value = headerLine.substring(columnPos + 1).trim(); SipHeaderFieldValue sipHeaderValue; if (!singleValueHeaders.contains(sipHeaderName) && - value.indexOf(RFC3261.HEADER_SEPARATOR) > -1) { + value.contains(RFC3261.HEADER_SEPARATOR)) { String[] values = value.split(RFC3261.HEADER_SEPARATOR); List list = - new ArrayList(); + new ArrayList<>(); for (String s: values) { list.add(new SipHeaderFieldValue(s)); } @@ -159,7 +159,7 @@ public class SipParser { sipMessage.setSipHeaders(sipHeaders); } - public void parseBody(SipMessage sipMessage) throws IOException, SipParserException { + public void parseBody(SipMessage sipMessage) throws IOException { SipHeaderFieldValue contentLengthValue = sipMessage.getSipHeaders().get(new SipHeaderFieldName( RFC3261.HDR_CONTENT_LENGTH)); diff --git a/src/peers/sip/syntaxencoding/SipParserException.java b/src/peers/sip/syntaxencoding/SipParserException.java index 3d38b63..3937eaf 100644 --- a/src/peers/sip/syntaxencoding/SipParserException.java +++ b/src/peers/sip/syntaxencoding/SipParserException.java @@ -19,6 +19,7 @@ package peers.sip.syntaxencoding; +@SuppressWarnings("unused") public class SipParserException extends Exception { private static final long serialVersionUID = 1L; diff --git a/src/peers/sip/syntaxencoding/SipURI.java b/src/peers/sip/syntaxencoding/SipURI.java index 196b651..2732887 100644 --- a/src/peers/sip/syntaxencoding/SipURI.java +++ b/src/peers/sip/syntaxencoding/SipURI.java @@ -21,6 +21,7 @@ package peers.sip.syntaxencoding; import java.util.Hashtable; +import lombok.Getter; import peers.sip.RFC3261; @@ -29,24 +30,24 @@ public class SipURI { public final static int DEFAULT_PORT = -1; - private String stringRepresentation; + private final String stringRepresentation; /** * telephone-subscriber and optional port are not managed */ - private String userinfo; - private String host; - private int port = DEFAULT_PORT; + @Getter private String userinfo; + @Getter private final String host; + @Getter private int port = DEFAULT_PORT; /** * Use empty strings in value if the parameter has no value */ - private Hashtable uriParameters; + @Getter private Hashtable uriParameters; //headers not implemented //private Hashtable headers; public SipURI(String sipUri) throws SipUriSyntaxException { stringRepresentation = sipUri; - StringBuffer buf = new StringBuffer(sipUri); + StringBuilder buf = new StringBuilder(sipUri); String scheme = RFC3261.SIP_SCHEME + RFC3261.SCHEME_SEPARATOR; if (!sipUri.startsWith(scheme)) { throw new SipUriSyntaxException("SIP URI must start with " + scheme); @@ -87,7 +88,7 @@ public class SipURI { if (buf.length() <= 0) { return; } - uriParameters = new Hashtable(); + uriParameters = new Hashtable<>(); while (buf.length() > 0) { buf.deleteCharAt(0);//delete the first ';' int nextSemicolon = buf.indexOf(";"); @@ -117,20 +118,4 @@ public class SipURI { return stringRepresentation; } - public String getHost() { - return host; - } - - public int getPort() { - return port; - } - - public Hashtable getUriParameters() { - return uriParameters; - } - - public String getUserinfo() { - return userinfo; - } - } diff --git a/src/peers/sip/transaction/ClientTransactionUser.java b/src/peers/sip/transaction/ClientTransactionUser.java index 91f707b..9040fc9 100644 --- a/src/peers/sip/transaction/ClientTransactionUser.java +++ b/src/peers/sip/transaction/ClientTransactionUser.java @@ -22,10 +22,10 @@ package peers.sip.transaction; import peers.sip.transport.SipResponse; public interface ClientTransactionUser { - public void transactionTimeout(ClientTransaction clientTransaction); - public void provResponseReceived(SipResponse sipResponse, Transaction transaction); + void transactionTimeout(ClientTransaction clientTransaction); + void provResponseReceived(SipResponse sipResponse, Transaction transaction); //TODO eventually pass transaction to the transaction user - public void errResponseReceived(SipResponse sipResponse);//3XX is considered as an error response - public void successResponseReceived(SipResponse sipResponse, Transaction transaction); - public void transactionTransportError(); + void errResponseReceived(SipResponse sipResponse);//3XX is considered as an error response + void successResponseReceived(SipResponse sipResponse, Transaction transaction); + void transactionTransportError(); } diff --git a/src/peers/sip/transaction/ServerTransaction.java b/src/peers/sip/transaction/ServerTransaction.java index 8165b93..c274b4f 100644 --- a/src/peers/sip/transaction/ServerTransaction.java +++ b/src/peers/sip/transaction/ServerTransaction.java @@ -24,9 +24,9 @@ import peers.sip.transport.SipResponse; public interface ServerTransaction { - public void start(); + void start(); - public void receivedRequest(SipRequest sipRequest); + void receivedRequest(SipRequest sipRequest); - public void sendReponse(SipResponse sipResponse); + void sendReponse(SipResponse sipResponse); } diff --git a/src/peers/sip/transaction/ServerTransactionUser.java b/src/peers/sip/transaction/ServerTransactionUser.java index 3e47659..159e5a3 100644 --- a/src/peers/sip/transaction/ServerTransactionUser.java +++ b/src/peers/sip/transaction/ServerTransactionUser.java @@ -21,5 +21,5 @@ package peers.sip.transaction; public interface ServerTransactionUser { - public void transactionFailure(); + void transactionFailure(); } diff --git a/src/peers/sip/transaction/SipListeningPoint.java b/src/peers/sip/transaction/SipListeningPoint.java index 14a653b..f632780 100644 --- a/src/peers/sip/transaction/SipListeningPoint.java +++ b/src/peers/sip/transaction/SipListeningPoint.java @@ -19,11 +19,14 @@ package peers.sip.transaction; +import lombok.Getter; +@SuppressWarnings("unused") +@Getter public class SipListeningPoint { - private int localPort; - private String localTransport; + private final int localPort; + private final String localTransport; public SipListeningPoint(int localPort, String localTransport) { super(); @@ -43,9 +46,7 @@ public class SipListeningPoint { @Override public String toString() { - StringBuffer buf = new StringBuffer(); - buf.append(':').append(localPort).append('/').append(localTransport); - return buf.toString(); + return ":" + localPort + '/' + localTransport; } @Override @@ -53,12 +54,4 @@ public class SipListeningPoint { return toString().hashCode(); } - public int getlocalPort() { - return localPort; - } - - public String getlocalTransport() { - return localTransport; - } - } diff --git a/src/peers/sip/transactionuser/DialogManager.java b/src/peers/sip/transactionuser/DialogManager.java index d61b573..b08f1d5 100644 --- a/src/peers/sip/transactionuser/DialogManager.java +++ b/src/peers/sip/transactionuser/DialogManager.java @@ -34,11 +34,11 @@ import peers.sip.transport.SipResponse; public class DialogManager { - private Hashtable dialogs; + private final Hashtable dialogs; public DialogManager() { - dialogs = new Hashtable(); + dialogs = new Hashtable<>(); } /** @@ -100,13 +100,11 @@ public class DialogManager { } private String getDialogId(String callID, String localTag, String remoteTag) { - StringBuffer buf = new StringBuffer(); - buf.append(callID); - buf.append(Dialog.ID_SEPARATOR); - buf.append(localTag); - buf.append(Dialog.ID_SEPARATOR); - buf.append(remoteTag); - return buf.toString(); + return callID + + Dialog.ID_SEPARATOR + + localTag + + Dialog.ID_SEPARATOR + + remoteTag; } public Collection getDialogCollection() { diff --git a/src/peers/sip/transport/MessageSender.java b/src/peers/sip/transport/MessageSender.java index 64496ca..5996042 100644 --- a/src/peers/sip/transport/MessageSender.java +++ b/src/peers/sip/transport/MessageSender.java @@ -24,6 +24,7 @@ import java.net.InetAddress; import java.util.Timer; import java.util.TimerTask; +import lombok.Getter; import org.pmw.tinylog.Logger; import peers.Config; @@ -36,10 +37,10 @@ public abstract class MessageSender { protected InetAddress inetAddress; protected int port; - protected int localPort; - private Config config; - private String transportName; - private Timer timer; + @Getter protected int localPort; + private final Config config; + private final String transportName; + private final Timer timer; public MessageSender(int localPort, InetAddress inetAddress, int port, Config config, @@ -61,7 +62,7 @@ public abstract class MessageSender { public abstract void sendBytes(byte[] bytes) throws IOException; public String getContact() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); InetAddress myAddress = config.getPublicInetAddress(); if (myAddress == null) { myAddress = config.getLocalInetAddress(); @@ -77,9 +78,7 @@ public abstract class MessageSender { return buf.toString(); } - public int getLocalPort() { - return localPort; - } + public void stopKeepAlives() { timer.cancel(); diff --git a/src/peers/sip/transport/SipClientTransportUser.java b/src/peers/sip/transport/SipClientTransportUser.java index 94d570e..9ebd4ad 100644 --- a/src/peers/sip/transport/SipClientTransportUser.java +++ b/src/peers/sip/transport/SipClientTransportUser.java @@ -19,9 +19,9 @@ package peers.sip.transport; - +@SuppressWarnings("unused") public interface SipClientTransportUser { - public void requestTransportError(SipRequest sipRequest, Exception e); - public void responseTransportError(Exception e); + void requestTransportError(SipRequest sipRequest, Exception e); + void responseTransportError(Exception e); } diff --git a/src/peers/sip/transport/SipMessage.java b/src/peers/sip/transport/SipMessage.java index 1c4679d..327cf44 100644 --- a/src/peers/sip/transport/SipMessage.java +++ b/src/peers/sip/transport/SipMessage.java @@ -19,37 +19,24 @@ package peers.sip.transport; +import lombok.Getter; +import lombok.Setter; import peers.sip.RFC3261; import peers.sip.syntaxencoding.SipHeaderFieldName; import peers.sip.syntaxencoding.SipHeaderFieldValue; import peers.sip.syntaxencoding.SipHeaders; +@Getter public abstract class SipMessage { protected String sipVersion; - protected SipHeaders sipHeaders; + @Setter protected SipHeaders sipHeaders; protected byte[] body; public SipMessage() { sipVersion = RFC3261.DEFAULT_SIP_VERSION; sipHeaders = new SipHeaders(); } - - public String getSipVersion() { - return sipVersion; - } - - public void setSipHeaders(SipHeaders sipHeaders) { - this.sipHeaders = sipHeaders; - } - - public SipHeaders getSipHeaders() { - return sipHeaders; - } - - public byte[] getBody() { - return body; - } public void setBody(byte[] body) { SipHeaderFieldName contentLengthName = @@ -68,7 +55,7 @@ public abstract class SipMessage { @Override public String toString() { - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); buf.append(sipHeaders.toString()); buf.append(RFC3261.CRLF); if (body != null) { diff --git a/src/peers/sip/transport/SipRequest.java b/src/peers/sip/transport/SipRequest.java index 69167f8..bde3c48 100644 --- a/src/peers/sip/transport/SipRequest.java +++ b/src/peers/sip/transport/SipRequest.java @@ -19,9 +19,11 @@ package peers.sip.transport; +import lombok.Getter; import peers.sip.RFC3261; import peers.sip.syntaxencoding.SipURI; +@Getter public class SipRequest extends SipMessage { protected String method; protected SipURI requestUri; @@ -35,19 +37,9 @@ public class SipRequest extends SipMessage { @Override public String toString() { - StringBuffer buf = new StringBuffer(); - buf.append(method).append(' ').append(requestUri).append( - ' ').append(RFC3261.DEFAULT_SIP_VERSION).append(RFC3261.CRLF); - buf.append(super.toString()); - return buf.toString(); - } - - public String getMethod() { - return method; - } - - public SipURI getRequestUri() { - return requestUri; + return method + ' ' + requestUri + + ' ' + RFC3261.DEFAULT_SIP_VERSION + RFC3261.CRLF + + super.toString(); } } diff --git a/src/peers/sip/transport/SipResponse.java b/src/peers/sip/transport/SipResponse.java index 95a52c5..6a4c40a 100644 --- a/src/peers/sip/transport/SipResponse.java +++ b/src/peers/sip/transport/SipResponse.java @@ -19,8 +19,10 @@ package peers.sip.transport; +import lombok.Getter; import peers.sip.RFC3261; +@Getter public class SipResponse extends SipMessage { protected int statusCode; protected String reasonPhrase; @@ -32,19 +34,9 @@ public class SipResponse extends SipMessage { @Override public String toString() { - StringBuffer buf = new StringBuffer(); - buf.append(RFC3261.DEFAULT_SIP_VERSION).append(' ').append(statusCode - ).append(' ').append(reasonPhrase).append(RFC3261.CRLF); - buf.append(super.toString()); - return buf.toString(); - } - - public int getStatusCode() { - return statusCode; - } - - public String getReasonPhrase() { - return reasonPhrase; + return RFC3261.DEFAULT_SIP_VERSION + ' ' + statusCode + + ' ' + reasonPhrase + RFC3261.CRLF + + super.toString(); } } diff --git a/src/peers/sip/transport/SipServerTransportUser.java b/src/peers/sip/transport/SipServerTransportUser.java index 27f10f8..1881aa0 100644 --- a/src/peers/sip/transport/SipServerTransportUser.java +++ b/src/peers/sip/transport/SipServerTransportUser.java @@ -21,5 +21,5 @@ package peers.sip.transport; public interface SipServerTransportUser { - public void messageReceived(SipMessage sipMessage); + void messageReceived(SipMessage sipMessage); } diff --git a/src/peers/sip/transport/SipTransportConnection.java b/src/peers/sip/transport/SipTransportConnection.java index 167b99b..40682ea 100644 --- a/src/peers/sip/transport/SipTransportConnection.java +++ b/src/peers/sip/transport/SipTransportConnection.java @@ -21,19 +21,20 @@ package peers.sip.transport; import java.net.InetAddress; +import lombok.Getter; import peers.sip.RFC3261; public class SipTransportConnection { public static final int EMPTY_PORT = -1; - private InetAddress localInetAddress; - private int localPort = EMPTY_PORT; + @Getter private final InetAddress localInetAddress; + @Getter private int localPort = EMPTY_PORT; - private InetAddress remoteInetAddress; - private int remotePort = EMPTY_PORT; + @Getter private final InetAddress remoteInetAddress; + @Getter private int remotePort = EMPTY_PORT; - private String transport;// UDP, TCP or SCTP + @Getter private final String transport;// UDP, TCP or SCTP public SipTransportConnection(InetAddress localInetAddress, int localPort, InetAddress remoteInetAddress, int remotePort, @@ -98,26 +99,6 @@ public class SipTransportConnection { public int hashCode() { return toString().hashCode(); } - - public InetAddress getLocalInetAddress() { - return localInetAddress; - } - - public int getLocalPort() { - return localPort; - } - - public InetAddress getRemoteInetAddress() { - return remoteInetAddress; - } - - public int getRemotePort() { - return remotePort; - } - - public String getTransport() { - return transport; - } } diff --git a/src/peers/sip/transport/UdpMessageReceiver.java b/src/peers/sip/transport/UdpMessageReceiver.java index 6607764..2f577f5 100644 --- a/src/peers/sip/transport/UdpMessageReceiver.java +++ b/src/peers/sip/transport/UdpMessageReceiver.java @@ -22,7 +22,6 @@ package peers.sip.transport; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; -import java.net.SocketException; import java.net.SocketTimeoutException; import java.security.AccessController; import java.security.PrivilegedAction; @@ -36,12 +35,11 @@ import peers.sip.transaction.TransactionManager; public class UdpMessageReceiver extends MessageReceiver { - private DatagramSocket datagramSocket; + private final DatagramSocket datagramSocket; public UdpMessageReceiver(DatagramSocket datagramSocket, TransactionManager transactionManager, - TransportManager transportManager, Config config) - throws SocketException { + TransportManager transportManager, Config config) { super(datagramSocket.getLocalPort(), transactionManager, transportManager, config); this.datagramSocket = datagramSocket; @@ -56,8 +54,7 @@ public class UdpMessageReceiver extends MessageReceiver { final int ioException = 2; // AccessController.doPrivileged added for plugin compatibility int result = AccessController.doPrivileged( - new PrivilegedAction() { - public Integer run() { + (PrivilegedAction) () -> { try { datagramSocket.receive(packet); } catch (SocketTimeoutException e) { @@ -67,15 +64,12 @@ public class UdpMessageReceiver extends MessageReceiver { return ioException; } return noException; - } - }); + }); switch (result) { case socketTimeoutException: return; case ioException: throw new IOException(); - case noException: - break; default: break; } diff --git a/src/peers/sip/transport/UdpMessageSender.java b/src/peers/sip/transport/UdpMessageSender.java index 96fa560..4e65fcb 100644 --- a/src/peers/sip/transport/UdpMessageSender.java +++ b/src/peers/sip/transport/UdpMessageSender.java @@ -19,11 +19,9 @@ package peers.sip.transport; -import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; -import java.net.SocketException; import java.security.AccessController; import java.security.PrivilegedAction; @@ -35,31 +33,30 @@ import peers.sip.RFC3261; public class UdpMessageSender extends MessageSender { - private DatagramSocket datagramSocket; + private final DatagramSocket datagramSocket; public UdpMessageSender(InetAddress inetAddress, int port, - DatagramSocket datagramSocket, Config config) throws SocketException { + DatagramSocket datagramSocket, Config config) { super(datagramSocket.getLocalPort(), inetAddress, port, config, RFC3261.TRANSPORT_UDP); this.datagramSocket = datagramSocket; } @Override - public synchronized void sendMessage(SipMessage sipMessage) throws IOException { + public synchronized void sendMessage(SipMessage sipMessage) { Logger.debug("UdpMessageSender.sendMessage"); if (sipMessage == null) { return; } byte[] buf = sipMessage.toString().getBytes(); sendBytes(buf); - StringBuffer direction = new StringBuffer(); - direction.append("SENT to ").append(inetAddress.getHostAddress()); - direction.append("/").append(port); - Logger.info(new String(buf), direction.toString()); + String direction = "SENT to " + inetAddress.getHostAddress() + + "/" + port; + Logger.info(new String(buf), direction); } @Override - public synchronized void sendBytes(byte[] bytes) throws IOException { + public synchronized void sendBytes(byte[] bytes) { Logger.debug("UdpMessageSender.sendBytes"); final DatagramPacket packet = new DatagramPacket(bytes, bytes.length, inetAddress, port); @@ -67,10 +64,7 @@ public class UdpMessageSender extends MessageSender { + " " + inetAddress + ":" + port); // AccessController.doPrivileged added for plugin compatibility AccessController.doPrivileged( - new PrivilegedAction() { - - @Override - public Void run() { + (PrivilegedAction) () -> { try { Logger.debug(datagramSocket.getLocalAddress().toString()); datagramSocket.send(packet); @@ -79,7 +73,6 @@ public class UdpMessageSender extends MessageSender { } return null; } - } ); Logger.debug("UdpMessageSender.sendBytes packet sent");