From 9d8f381427d747c35f169a154d4a1d6fd7788051 Mon Sep 17 00:00:00 2001 From: nathan Date: Fri, 22 Sep 2017 16:42:53 +0200 Subject: [PATCH] Serialization manager is now moved into the Configuration options, so that different network backends (within the same application) can support multiple serialization schemes. --- src/dorkbox/network/Client.java | 2 +- src/dorkbox/network/Configuration.java | 37 +++++++++++++++++-- src/dorkbox/network/Server.java | 4 +- src/dorkbox/network/connection/EndPoint.java | 6 ++- .../KryoCryptoSerializationManager.java | 5 --- test/dorkbox/network/ChunkedDataIdleTest.java | 25 ++++++++----- test/dorkbox/network/ClientSendTest.java | 18 ++++----- test/dorkbox/network/ConnectionTest.java | 36 ++++++++---------- test/dorkbox/network/IdleTest.java | 37 ++++++++++++------- .../network/LargeResizeBufferTest.java | 20 +++++----- test/dorkbox/network/MultipleServerTest.java | 21 ++++++----- test/dorkbox/network/MultipleThreadTest.java | 25 +++++++------ test/dorkbox/network/PingPongLocalTest.java | 25 +++++++------ test/dorkbox/network/PingPongTest.java | 22 +++++------ .../network/UnregisteredClassTest.java | 21 ++++++----- test/dorkbox/network/rmi/RmiGlobalTest.java | 27 +++++++------- .../rmi/RmiSendObjectOverrideMethodTest.java | 28 +++++++------- .../network/rmi/RmiSendObjectTest.java | 29 ++++++++------- test/dorkbox/network/rmi/RmiTest.java | 26 +++++++------ 19 files changed, 236 insertions(+), 178 deletions(-) diff --git a/src/dorkbox/network/Client.java b/src/dorkbox/network/Client.java index 002da2d5..0c840370 100644 --- a/src/dorkbox/network/Client.java +++ b/src/dorkbox/network/Client.java @@ -75,7 +75,7 @@ class Client extends EndPointClient implements Connecti */ public Client() throws InitializationException, SecurityException, IOException { - this(new Configuration(LOCAL_CHANNEL)); + this(Configuration.localOnly()); } /** diff --git a/src/dorkbox/network/Configuration.java b/src/dorkbox/network/Configuration.java index a9a596d6..3c70ce94 100644 --- a/src/dorkbox/network/Configuration.java +++ b/src/dorkbox/network/Configuration.java @@ -17,7 +17,9 @@ package dorkbox.network; import java.util.concurrent.Executor; +import dorkbox.network.connection.EndPoint; import dorkbox.network.store.SettingsStore; +import dorkbox.network.util.CryptoSerializationManager; public class Configuration { @@ -25,22 +27,43 @@ class Configuration { * On the server, if host is null, it will bind to the "any" address, otherwise you must specify the hostname/IP to bind to. */ public String host = null; + + /** + * Specify the TCP port to use. The server will listen on this port, the client will connect to it. + */ public int tcpPort = -1; /** + * Specify the UDP port to use. The server will listen on this port, the client will connect to it. + *

* UDP requires TCP to handshake */ public int udpPort = -1; /** + * Specify the UDT port to use. The server will listen on this port, the client will connect to it. + *

* UDT requires TCP to handshake */ public int udtPort = -1; + /** + * Specify the local channel name to use, if the default is not wanted. + *

+ * Local/remote configurations are incompatible with each other. + */ public String localChannelName = null; + /** + * Allows the end user to change how server settings are stored. For example, a custom database instead of the default. + */ public SettingsStore settingsStore = null; + /** + * Specify the serialization manager to use. If null, it uses the default. + */ + public CryptoSerializationManager serialization = null; + /** * Enable remote method invocation (RMI) for this connection. There is additional overhead to using RMI. *

@@ -61,9 +84,17 @@ class Configuration { Configuration() { } - public - Configuration(String localChannelName) { - this.localChannelName = localChannelName; + /** + * Creates a new configuration for a connection that is local inside the JVM using the default name. + *

+ * Local/remote configurations are incompatible with each other when running as a client. Servers can listen on all of them. + */ + public static + Configuration localOnly() { + Configuration configuration = new Configuration(); + configuration.localChannelName = EndPoint.LOCAL_CHANNEL; + + return configuration; } public diff --git a/src/dorkbox/network/Server.java b/src/dorkbox/network/Server.java index 5de68da3..5844871d 100644 --- a/src/dorkbox/network/Server.java +++ b/src/dorkbox/network/Server.java @@ -86,11 +86,11 @@ class Server extends EndPointServer { private final String localChannelName; /** - * Starts a LOCAL only server, with the default serialization scheme + * Starts a LOCAL only server, with the default serialization scheme. */ public Server() throws InitializationException, SecurityException, IOException { - this(new Configuration(LOCAL_CHANNEL)); + this(Configuration.localOnly()); } /** diff --git a/src/dorkbox/network/connection/EndPoint.java b/src/dorkbox/network/connection/EndPoint.java index 41986be5..f899015e 100644 --- a/src/dorkbox/network/connection/EndPoint.java +++ b/src/dorkbox/network/connection/EndPoint.java @@ -218,7 +218,11 @@ class EndPoint { } // serialization stuff - this.serializationManager = KryoCryptoSerializationManager.DEFAULT; + if (options.serialization != null) { + this.serializationManager = options.serialization; + } else { + this.serializationManager = KryoCryptoSerializationManager.DEFAULT(); + } rmiEnabled = options.rmiEnabled; if (rmiEnabled) { diff --git a/src/dorkbox/network/connection/KryoCryptoSerializationManager.java b/src/dorkbox/network/connection/KryoCryptoSerializationManager.java index 46095e22..ca938064 100644 --- a/src/dorkbox/network/connection/KryoCryptoSerializationManager.java +++ b/src/dorkbox/network/connection/KryoCryptoSerializationManager.java @@ -82,11 +82,6 @@ class KryoCryptoSerializationManager implements CryptoSerializationManager { private static final String OBJECT_ID = "objectID"; - /** - * The default serialization manager. This is static, since serialization must be consistent within the JVM. This can be changed. - */ - public static KryoCryptoSerializationManager DEFAULT = DEFAULT(); - public static KryoCryptoSerializationManager DEFAULT() { return DEFAULT(true, true); diff --git a/test/dorkbox/network/ChunkedDataIdleTest.java b/test/dorkbox/network/ChunkedDataIdleTest.java index 1758cdbf..b6af61a5 100644 --- a/test/dorkbox/network/ChunkedDataIdleTest.java +++ b/test/dorkbox/network/ChunkedDataIdleTest.java @@ -20,6 +20,13 @@ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.Arrays; + +import org.junit.Test; + import dorkbox.network.PingPongTest.TYPE; import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; @@ -28,12 +35,6 @@ import dorkbox.network.connection.idle.IdleBridge; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; - -import static org.junit.Assert.fail; public class ChunkedDataIdleTest extends BaseTest { private volatile boolean success = false; @@ -47,9 +48,6 @@ public class ChunkedDataIdleTest extends BaseTest { // have to test sending objects @Test public void ObjectSender() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - final Data mainData = new Data(); populateData(mainData); @@ -58,6 +56,9 @@ public class ChunkedDataIdleTest extends BaseTest { Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.TCP); @@ -66,6 +67,9 @@ public class ChunkedDataIdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.UDP); @@ -74,6 +78,9 @@ public class ChunkedDataIdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udtPort = udtPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.UDT); } diff --git a/test/dorkbox/network/ClientSendTest.java b/test/dorkbox/network/ClientSendTest.java index 97496512..dbbc949d 100644 --- a/test/dorkbox/network/ClientSendTest.java +++ b/test/dorkbox/network/ClientSendTest.java @@ -19,18 +19,19 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; import dorkbox.network.connection.Listener; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicBoolean; - -import static org.junit.Assert.fail; public class ClientSendTest extends BaseTest { @@ -40,12 +41,11 @@ class ClientSendTest extends BaseTest { @Test public void sendDataFromClientClass() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); Server server = new Server(configuration); addEndPoint(server); diff --git a/test/dorkbox/network/ConnectionTest.java b/test/dorkbox/network/ConnectionTest.java index 58236451..6d55ce8e 100644 --- a/test/dorkbox/network/ConnectionTest.java +++ b/test/dorkbox/network/ConnectionTest.java @@ -19,6 +19,12 @@ */ package dorkbox.network; +import java.io.IOException; +import java.util.Timer; +import java.util.TimerTask; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.EndPoint; import dorkbox.network.connection.KryoCryptoSerializationManager; @@ -26,11 +32,6 @@ import dorkbox.network.connection.Listener; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.Timer; -import java.util.TimerTask; public class ConnectionTest extends BaseTest { @@ -38,13 +39,12 @@ class ConnectionTest extends BaseTest { @Test public void connectLocal() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - System.out.println("---- " + "Local"); Configuration configuration = new Configuration(); configuration.localChannelName = EndPoint.LOCAL_CHANNEL; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); startServer(configuration); startClient(configuration); @@ -55,13 +55,12 @@ class ConnectionTest extends BaseTest { @Test public void connectTcp() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - System.out.println("---- " + "TCP"); Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); startServer(configuration); @@ -74,14 +73,13 @@ class ConnectionTest extends BaseTest { @Test public void connectTcpUdp() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - System.out.println("---- " + "TCP UDP"); Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); startServer(configuration); @@ -94,14 +92,13 @@ class ConnectionTest extends BaseTest { @Test public void connectTcpUdt() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - System.out.println("---- " + "TCP UDT"); Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udtPort = udtPort; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); startServer(configuration); @@ -114,15 +111,14 @@ class ConnectionTest extends BaseTest { @Test public void connectTcpUdpUdt() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - System.out.println("---- " + "TCP UDP UDT"); Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.udtPort = udtPort; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); startServer(configuration); diff --git a/test/dorkbox/network/IdleTest.java b/test/dorkbox/network/IdleTest.java index 70d780d6..8b38014d 100644 --- a/test/dorkbox/network/IdleTest.java +++ b/test/dorkbox/network/IdleTest.java @@ -19,6 +19,15 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Arrays; + +import org.junit.Test; + import dorkbox.network.PingPongTest.TYPE; import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; @@ -32,14 +41,6 @@ import dorkbox.network.connection.idle.InputStreamSender; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Arrays; - -import static org.junit.Assert.fail; @SuppressWarnings({"rawtypes"}) public @@ -56,14 +57,14 @@ class IdleTest extends BaseTest { @Test public void InputStreamSender() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(false, false); - final int largeDataSize = 12345; System.err.println("-- TCP"); Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(false, false); + streamSpecificType(largeDataSize, configuration, ConnectionType.TCP); @@ -72,6 +73,8 @@ class IdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(false, false); + streamSpecificType(largeDataSize, configuration, ConnectionType.UDP); @@ -80,6 +83,8 @@ class IdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udtPort = udtPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(false, false); + streamSpecificType(largeDataSize, configuration, ConnectionType.UDT); } @@ -89,9 +94,6 @@ class IdleTest extends BaseTest { @Test public void ObjectSender() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - final Data mainData = new Data(); populateData(mainData); @@ -100,6 +102,9 @@ class IdleTest extends BaseTest { Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.TCP); @@ -108,6 +113,9 @@ class IdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.TCP); @@ -116,6 +124,9 @@ class IdleTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udtPort = udtPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + sendObject(mainData, configuration, ConnectionType.TCP); } diff --git a/test/dorkbox/network/LargeResizeBufferTest.java b/test/dorkbox/network/LargeResizeBufferTest.java index acede3dd..f0db4b31 100644 --- a/test/dorkbox/network/LargeResizeBufferTest.java +++ b/test/dorkbox/network/LargeResizeBufferTest.java @@ -19,19 +19,20 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.security.SecureRandom; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; import dorkbox.network.connection.Listener; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.security.SecureRandom; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.fail; public class LargeResizeBufferTest extends BaseTest { @@ -44,15 +45,14 @@ class LargeResizeBufferTest extends BaseTest { @Test public void manyLargeMessages() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - final int messageCount = 1024; Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); Server server = new Server(configuration); addEndPoint(server); diff --git a/test/dorkbox/network/MultipleServerTest.java b/test/dorkbox/network/MultipleServerTest.java index 888f05e6..63fb0cbc 100644 --- a/test/dorkbox/network/MultipleServerTest.java +++ b/test/dorkbox/network/MultipleServerTest.java @@ -19,17 +19,18 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; import dorkbox.network.connection.Listener; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.fail; public class MultipleServerTest extends BaseTest { @@ -38,13 +39,12 @@ class MultipleServerTest extends BaseTest { @Test public void multipleServers() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - KryoCryptoSerializationManager.DEFAULT.register(String[].class); - Configuration configuration1 = new Configuration(); configuration1.tcpPort = tcpPort; configuration1.udpPort = udpPort; configuration1.localChannelName = "chan1"; + configuration1.serialization = KryoCryptoSerializationManager.DEFAULT(); + configuration1.serialization.register(String[].class); Server server1 = new Server(configuration1); addEndPoint(server1); @@ -68,6 +68,8 @@ class MultipleServerTest extends BaseTest { configuration2.tcpPort = tcpPort + 1; configuration2.udpPort = udpPort + 1; configuration2.localChannelName = "chan2"; + configuration2.serialization = KryoCryptoSerializationManager.DEFAULT(); + configuration2.serialization.register(String[].class); Server server2 = new Server(configuration2); @@ -92,6 +94,7 @@ class MultipleServerTest extends BaseTest { configuration1.localChannelName = null; configuration1.host = host; + Client client1 = new Client(configuration1); addEndPoint(client1); client1.listeners() diff --git a/test/dorkbox/network/MultipleThreadTest.java b/test/dorkbox/network/MultipleThreadTest.java index 58540b5b..70dc4c9e 100644 --- a/test/dorkbox/network/MultipleThreadTest.java +++ b/test/dorkbox/network/MultipleThreadTest.java @@ -19,13 +19,7 @@ */ package dorkbox.network; -import dorkbox.network.connection.Connection; -import dorkbox.network.connection.KryoCryptoSerializationManager; -import dorkbox.network.connection.Listener; -import dorkbox.network.connection.ListenerBridge; -import dorkbox.util.exceptions.InitializationException; -import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; +import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.ArrayList; @@ -34,7 +28,14 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import static org.junit.Assert.assertEquals; +import org.junit.Test; + +import dorkbox.network.connection.Connection; +import dorkbox.network.connection.KryoCryptoSerializationManager; +import dorkbox.network.connection.Listener; +import dorkbox.network.connection.ListenerBridge; +import dorkbox.util.exceptions.InitializationException; +import dorkbox.util.exceptions.SecurityException; public class MultipleThreadTest extends BaseTest { @@ -57,13 +58,13 @@ class MultipleThreadTest extends BaseTest { @Test public void multipleThreads() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - KryoCryptoSerializationManager.DEFAULT.register(String[].class); - KryoCryptoSerializationManager.DEFAULT.register(DataClass.class); - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + configuration.serialization.register(String[].class); + configuration.serialization.register(DataClass.class); + final Server server = new Server(configuration); diff --git a/test/dorkbox/network/PingPongLocalTest.java b/test/dorkbox/network/PingPongLocalTest.java index 363068cb..7dc8d04b 100644 --- a/test/dorkbox/network/PingPongLocalTest.java +++ b/test/dorkbox/network/PingPongLocalTest.java @@ -19,6 +19,14 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.KryoCryptoSerializationManager; import dorkbox.network.connection.Listener; @@ -26,13 +34,6 @@ import dorkbox.network.connection.ListenerBridge; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.fail; public class PingPongLocalTest extends BaseTest { @@ -41,15 +42,17 @@ class PingPongLocalTest extends BaseTest { @Test public void pingPongLocal() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - this.fail = "Data not received."; final Data dataLOCAL = new Data(); populateData(dataLOCAL); - Server server = new Server(); + Configuration configuration = Configuration.localOnly(); + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + + + Server server = new Server(configuration); addEndPoint(server); server.bind(false); final ListenerBridge listeners = server.listeners(); diff --git a/test/dorkbox/network/PingPongTest.java b/test/dorkbox/network/PingPongTest.java index 08facc34..b215cfd6 100644 --- a/test/dorkbox/network/PingPongTest.java +++ b/test/dorkbox/network/PingPongTest.java @@ -19,6 +19,15 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.EndPoint; import dorkbox.network.connection.KryoCryptoSerializationManager; @@ -27,14 +36,6 @@ import dorkbox.network.connection.ListenerBridge; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.fail; public class PingPongTest extends BaseTest { @@ -50,9 +51,6 @@ class PingPongTest extends BaseTest { @Test public void pingPong() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - // UDP data is kinda big. Make sure it fits into one packet. int origSize = EndPoint.udpMaxSize; EndPoint.udpMaxSize = 2048; @@ -64,6 +62,8 @@ class PingPongTest extends BaseTest { configuration.udpPort = udpPort; configuration.udtPort = udtPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); final Data dataTCP = new Data(); diff --git a/test/dorkbox/network/UnregisteredClassTest.java b/test/dorkbox/network/UnregisteredClassTest.java index ff144ac5..4030b27f 100644 --- a/test/dorkbox/network/UnregisteredClassTest.java +++ b/test/dorkbox/network/UnregisteredClassTest.java @@ -19,6 +19,15 @@ */ package dorkbox.network; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.connection.Connection; import dorkbox.network.connection.EndPoint; import dorkbox.network.connection.KryoCryptoSerializationManager; @@ -26,14 +35,6 @@ import dorkbox.network.connection.Listener; import dorkbox.network.connection.ListenerBridge; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.Arrays; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.fail; public class UnregisteredClassTest extends BaseTest { @@ -46,8 +47,6 @@ class UnregisteredClassTest extends BaseTest { @Test public void unregisteredClasses() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(false, false); - int origSize = EndPoint.udpMaxSize; EndPoint.udpMaxSize = 2048; @@ -55,6 +54,8 @@ class UnregisteredClassTest extends BaseTest { configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(false, false); + System.err.println("Running test " + this.tries + " times, please wait for it to finish."); diff --git a/test/dorkbox/network/rmi/RmiGlobalTest.java b/test/dorkbox/network/rmi/RmiGlobalTest.java index a6b2c7b7..f3609487 100644 --- a/test/dorkbox/network/rmi/RmiGlobalTest.java +++ b/test/dorkbox/network/rmi/RmiGlobalTest.java @@ -34,6 +34,16 @@ */ package dorkbox.network.rmi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.io.Serializable; + +import org.junit.Test; + import dorkbox.network.BaseTest; import dorkbox.network.Client; import dorkbox.network.Configuration; @@ -45,15 +55,6 @@ import dorkbox.network.connection.Listener; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.io.Serializable; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; public class RmiGlobalTest extends BaseTest { @@ -209,15 +210,15 @@ class RmiGlobalTest extends BaseTest { @Test public void rmi() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.rmiEnabled = true; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + final Server server = new Server(configuration); server.setIdleTimeout(0); diff --git a/test/dorkbox/network/rmi/RmiSendObjectOverrideMethodTest.java b/test/dorkbox/network/rmi/RmiSendObjectOverrideMethodTest.java index 7bbd77ae..86399ec4 100644 --- a/test/dorkbox/network/rmi/RmiSendObjectOverrideMethodTest.java +++ b/test/dorkbox/network/rmi/RmiSendObjectOverrideMethodTest.java @@ -15,6 +15,14 @@ */ package dorkbox.network.rmi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.BaseTest; import dorkbox.network.Client; import dorkbox.network.Configuration; @@ -25,13 +33,6 @@ import dorkbox.network.connection.Listener; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; import dorkbox.util.serialization.IgnoreSerialization; -import org.junit.Test; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; @SuppressWarnings("Duplicates") public @@ -66,16 +67,17 @@ class RmiSendObjectOverrideMethodTest extends BaseTest { @Test public void rmi() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - KryoCryptoSerializationManager.DEFAULT.registerRemote(TestObject.class, TestObjectImpl.class); - KryoCryptoSerializationManager.DEFAULT.registerRemote(OtherObject.class, OtherObjectImpl.class); - - - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.rmiEnabled = true; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + + configuration.serialization.registerRemote(TestObject.class, TestObjectImpl.class); + configuration.serialization.registerRemote(OtherObject.class, OtherObjectImpl.class); + + Server server = new Server(configuration); server.setIdleTimeout(0); diff --git a/test/dorkbox/network/rmi/RmiSendObjectTest.java b/test/dorkbox/network/rmi/RmiSendObjectTest.java index 535a8758..b95b4813 100644 --- a/test/dorkbox/network/rmi/RmiSendObjectTest.java +++ b/test/dorkbox/network/rmi/RmiSendObjectTest.java @@ -34,6 +34,14 @@ */ package dorkbox.network.rmi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.BaseTest; import dorkbox.network.Client; import dorkbox.network.Configuration; @@ -44,13 +52,6 @@ import dorkbox.network.connection.Listener; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; import dorkbox.util.serialization.IgnoreSerialization; -import org.junit.Test; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; @SuppressWarnings("Duplicates") public @@ -63,17 +64,17 @@ class RmiSendObjectTest extends BaseTest { @Test public void rmi() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - KryoCryptoSerializationManager.DEFAULT.register(TestObject.class); - - KryoCryptoSerializationManager.DEFAULT.registerRemote(TestObject.class, TestObjectImpl.class); - KryoCryptoSerializationManager.DEFAULT.registerRemote(OtherObject.class, OtherObjectImpl.class); - - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.host = host; + configuration.rmiEnabled = true; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + + configuration.serialization.register(TestObject.class); + configuration.serialization.registerRemote(TestObject.class, TestObjectImpl.class); + configuration.serialization.registerRemote(OtherObject.class, OtherObjectImpl.class); + Server server = new Server(configuration); server.setIdleTimeout(0); diff --git a/test/dorkbox/network/rmi/RmiTest.java b/test/dorkbox/network/rmi/RmiTest.java index c0e34df5..9610629e 100644 --- a/test/dorkbox/network/rmi/RmiTest.java +++ b/test/dorkbox/network/rmi/RmiTest.java @@ -34,6 +34,16 @@ */ package dorkbox.network.rmi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + import dorkbox.network.BaseTest; import dorkbox.network.Client; import dorkbox.network.Configuration; @@ -45,15 +55,6 @@ import dorkbox.network.connection.ListenerBridge; import dorkbox.network.util.CryptoSerializationManager; import dorkbox.util.exceptions.InitializationException; import dorkbox.util.exceptions.SecurityException; -import org.junit.Test; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; public class RmiTest extends BaseTest { @@ -196,14 +197,15 @@ class RmiTest extends BaseTest { @Test public void rmi() throws InitializationException, SecurityException, IOException, InterruptedException { - KryoCryptoSerializationManager.DEFAULT = KryoCryptoSerializationManager.DEFAULT(); - register(KryoCryptoSerializationManager.DEFAULT); - Configuration configuration = new Configuration(); configuration.tcpPort = tcpPort; configuration.udpPort = udpPort; configuration.host = host; + configuration.rmiEnabled = true; + configuration.serialization = KryoCryptoSerializationManager.DEFAULT(); + register(configuration.serialization); + final Server server = new Server(configuration); server.setIdleTimeout(0);