diff --git a/api/net/sf/briar/api/transport/TransportPlugin.java b/api/net/sf/briar/api/transport/TransportPlugin.java index 9a268656217797e6837d1023b633faeec1b8546c..89be8c60e359307eee8ae586b47f6be34e7a8ce4 100644 --- a/api/net/sf/briar/api/transport/TransportPlugin.java +++ b/api/net/sf/briar/api/transport/TransportPlugin.java @@ -11,6 +11,11 @@ public interface TransportPlugin { /** Returns the plugin's transport identifier. */ TransportId getId(); + /** Starts the plugin. */ + void start(Map<String, String> localProperties, + Map<ContactId, Map<String, String>> remoteProperties, + Map<String, String> config) throws IOException; + /** * Stops the plugin. No further connections will be passed to the callback * after this method has returned. diff --git a/api/net/sf/briar/api/transport/batch/BatchTransportPlugin.java b/api/net/sf/briar/api/transport/batch/BatchTransportPlugin.java index 0cb542603cc541e55c26dee26dd1e327c4fe18a0..5f670367ee0b498c615c9c6d9be0c5364aa5820c 100644 --- a/api/net/sf/briar/api/transport/batch/BatchTransportPlugin.java +++ b/api/net/sf/briar/api/transport/batch/BatchTransportPlugin.java @@ -1,8 +1,5 @@ package net.sf.briar.api.transport.batch; -import java.io.IOException; -import java.util.Map; - import net.sf.briar.api.ContactId; import net.sf.briar.api.transport.TransportPlugin; @@ -12,15 +9,6 @@ import net.sf.briar.api.transport.TransportPlugin; */ public interface BatchTransportPlugin extends TransportPlugin { - /** - * Starts the plugin. Any connections that are later initiated by contacts - * or established through polling will be passed to the given callback. - */ - void start(Map<String, String> localProperties, - Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, BatchTransportCallback c) - throws IOException; - /** * Attempts to create and return a BatchTransportReader for the given * contact using the current transport and configuration properties. diff --git a/api/net/sf/briar/api/transport/stream/StreamTransportPlugin.java b/api/net/sf/briar/api/transport/stream/StreamTransportPlugin.java index 812d924c2608c7d4d89be540c437969d6f5e3a3c..cfe79f1237912d86c5d194d4be84113b5620d95a 100644 --- a/api/net/sf/briar/api/transport/stream/StreamTransportPlugin.java +++ b/api/net/sf/briar/api/transport/stream/StreamTransportPlugin.java @@ -1,8 +1,5 @@ package net.sf.briar.api.transport.stream; -import java.io.IOException; -import java.util.Map; - import net.sf.briar.api.ContactId; import net.sf.briar.api.transport.TransportPlugin; @@ -12,15 +9,6 @@ import net.sf.briar.api.transport.TransportPlugin; */ public interface StreamTransportPlugin extends TransportPlugin { - /** - * Starts the plugin. Any connections that are later initiated by contacts - * or established through polling will be passed to the given callback. - */ - void start(Map<String, String> localProperties, - Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, StreamTransportCallback c) - throws IOException; - /** * Attempts to create and return a StreamTransportConnection to the given * contact using the current transport and configuration properties. diff --git a/components/net/sf/briar/plugins/AbstractPlugin.java b/components/net/sf/briar/plugins/AbstractPlugin.java index 3a64216aaa543317f602a20e83c21bfc84992312..50c2d7bfa6a239d4a4a6602376c70e7c043d0da3 100644 --- a/components/net/sf/briar/plugins/AbstractPlugin.java +++ b/components/net/sf/briar/plugins/AbstractPlugin.java @@ -26,9 +26,9 @@ public abstract class AbstractPlugin implements TransportPlugin { this.executor = executor; } - protected synchronized void start(Map<String, String> localProperties, + public synchronized void start(Map<String, String> localProperties, Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config) { + Map<String, String> config) throws IOException { if(started) throw new IllegalStateException(); started = true; this.localProperties = Collections.unmodifiableMap(localProperties); diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java index 0cd1f08218e48247b2381c0f440b32a907d16a94..d05977fa8eae2dd9a630408ab79717df928e415c 100644 --- a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java +++ b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java @@ -36,14 +36,16 @@ class BluetoothPlugin extends AbstractPlugin implements StreamTransportPlugin { private static final Logger LOG = Logger.getLogger(BluetoothPlugin.class.getName()); + private final StreamTransportCallback callback; private final long pollingInterval; - private StreamTransportCallback callback = null; private LocalDevice localDevice = null; private StreamConnectionNotifier streamConnectionNotifier = null; - BluetoothPlugin(Executor executor, long pollingInterval) { + BluetoothPlugin(Executor executor, StreamTransportCallback callback, + long pollingInterval) { super(executor); + this.callback = callback; this.pollingInterval = pollingInterval; } @@ -51,12 +53,11 @@ class BluetoothPlugin extends AbstractPlugin implements StreamTransportPlugin { return id; } + @Override public synchronized void start(Map<String, String> localProperties, Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, StreamTransportCallback callback) - throws IOException { + Map<String, String> config) throws IOException { super.start(localProperties, remoteProperties, config); - this.callback = callback; // Initialise the Bluetooth stack try { localDevice = LocalDevice.getLocalDevice(); @@ -69,6 +70,7 @@ class BluetoothPlugin extends AbstractPlugin implements StreamTransportPlugin { executor.execute(createBinder()); } + @Override public synchronized void stop() throws IOException { super.stop(); if(streamConnectionNotifier != null) { diff --git a/components/net/sf/briar/plugins/file/FilePlugin.java b/components/net/sf/briar/plugins/file/FilePlugin.java index f9eea0fa9eb7765095b4c2279086aedf24e0cc44..4e5698b7edf3adecf8cbac139a41a8e6abedee85 100644 --- a/components/net/sf/briar/plugins/file/FilePlugin.java +++ b/components/net/sf/briar/plugins/file/FilePlugin.java @@ -5,7 +5,6 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.util.Map; import java.util.concurrent.Executor; import java.util.logging.Level; import java.util.logging.Logger; @@ -26,19 +25,14 @@ implements BatchTransportPlugin { private static final Logger LOG = Logger.getLogger(FilePlugin.class.getName()); + protected final BatchTransportCallback callback; + protected abstract File chooseOutputDirectory(); protected abstract void writerFinished(File f); protected abstract void readerFinished(File f); - protected FilePlugin(Executor executor) { + protected FilePlugin(Executor executor, BatchTransportCallback callback) { super(executor); - } - - public synchronized void start(Map<String, String> localProperties, - Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, BatchTransportCallback callback) - throws IOException { - super.start(localProperties, remoteProperties, config); this.callback = callback; } diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java b/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java index fb66dfd5e3a881a18373c2967508204b8d1454d3..9abec747082f9d8ca86ef9094ddbda6ddee82c1e 100644 --- a/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java +++ b/components/net/sf/briar/plugins/file/RemovableDrivePlugin.java @@ -24,9 +24,9 @@ implements RemovableDriveMonitor.Callback { private final RemovableDriveFinder finder; private final RemovableDriveMonitor monitor; - RemovableDrivePlugin(Executor executor, RemovableDriveFinder finder, - RemovableDriveMonitor monitor) { - super(executor); + RemovableDrivePlugin(Executor executor, BatchTransportCallback callback, + RemovableDriveFinder finder, RemovableDriveMonitor monitor) { + super(executor, callback); this.finder = finder; this.monitor = monitor; } @@ -38,9 +38,8 @@ implements RemovableDriveMonitor.Callback { @Override public void start(Map<String, String> localProperties, Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, BatchTransportCallback callback) - throws IOException { - super.start(localProperties, remoteProperties, config, callback); + Map<String, String> config) throws IOException { + super.start(localProperties, remoteProperties, config); monitor.start(this); } diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java index 4a11437b7a068026a5b6be0a7fe5e41d4d0b6e57..bc0a97a43dde58861cc72fd4f7578c207e000b1a 100644 --- a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java +++ b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java @@ -11,6 +11,7 @@ import java.util.concurrent.Executor; import net.sf.briar.api.ContactId; import net.sf.briar.api.TransportId; +import net.sf.briar.api.transport.stream.StreamTransportCallback; class SimpleSocketPlugin extends SocketPlugin { @@ -20,8 +21,9 @@ class SimpleSocketPlugin extends SocketPlugin { private final long pollingInterval; - SimpleSocketPlugin(Executor executor, long pollingInterval) { - super(executor); + SimpleSocketPlugin(Executor executor, StreamTransportCallback callback, + long pollingInterval) { + super(executor, callback); this.pollingInterval = pollingInterval; } diff --git a/components/net/sf/briar/plugins/socket/SocketPlugin.java b/components/net/sf/briar/plugins/socket/SocketPlugin.java index 9f8e85b4f66957d6a60a5975d4c460083e895ed1..9be12eb021444406bc66fe91ebc023fe3a8fb103 100644 --- a/components/net/sf/briar/plugins/socket/SocketPlugin.java +++ b/components/net/sf/briar/plugins/socket/SocketPlugin.java @@ -21,8 +21,9 @@ implements StreamTransportPlugin { private static final Logger LOG = Logger.getLogger(SocketPlugin.class.getName()); - // These fields should be accessed with this's lock held - protected StreamTransportCallback callback = null; + protected final StreamTransportCallback callback; + + // This field should be accessed with this's lock held protected ServerSocket socket = null; // These methods should be called with this's lock held and started == true @@ -32,15 +33,17 @@ implements StreamTransportPlugin { protected abstract Socket createClientSocket() throws IOException; protected abstract ServerSocket createServerSocket() throws IOException; - protected SocketPlugin(Executor executor) { + protected SocketPlugin(Executor executor, + StreamTransportCallback callback) { super(executor); + this.callback = callback; } + @Override public synchronized void start(Map<String, String> localProperties, Map<ContactId, Map<String, String>> remoteProperties, - Map<String, String> config, StreamTransportCallback callback) { + Map<String, String> config) throws IOException { super.start(localProperties, remoteProperties, config); - this.callback = callback; executor.execute(createBinder()); } @@ -128,6 +131,7 @@ implements StreamTransportPlugin { } } + @Override public synchronized void stop() throws IOException { super.stop(); if(socket != null) { @@ -136,6 +140,7 @@ implements StreamTransportPlugin { } } + @Override public synchronized void setLocalProperties( Map<String, String> properties) { super.setLocalProperties(properties); diff --git a/test/net/sf/briar/plugins/bluetooth/BluetoothClientTest.java b/test/net/sf/briar/plugins/bluetooth/BluetoothClientTest.java index 6e6e62d9630d25a977003cda3f49cbe8c55ca837..2fc2bfab491267e652f934039757760eb4819c57 100644 --- a/test/net/sf/briar/plugins/bluetooth/BluetoothClientTest.java +++ b/test/net/sf/briar/plugins/bluetooth/BluetoothClientTest.java @@ -36,10 +36,10 @@ public class BluetoothClientTest { remoteProperties.put(contactId, properties); // Create the plugin BluetoothPlugin plugin = - new BluetoothPlugin(new ImmediateExecutor(), 0L); + new BluetoothPlugin(new ImmediateExecutor(), callback, 0L); // Start the plugin System.out.println("Starting plugin"); - plugin.start(localProperties, remoteProperties, config, callback); + plugin.start(localProperties, remoteProperties, config); // Try to connect to the server System.out.println("Creating connection"); StreamTransportConnection conn = plugin.createConnection(contactId); diff --git a/test/net/sf/briar/plugins/bluetooth/BluetoothServerTest.java b/test/net/sf/briar/plugins/bluetooth/BluetoothServerTest.java index 4a990f4b95360573f84958d04c1e5d72f0cfe4b9..0ab8e5ecb92a8820a8ec78131dbd271f24eeef47 100644 --- a/test/net/sf/briar/plugins/bluetooth/BluetoothServerTest.java +++ b/test/net/sf/briar/plugins/bluetooth/BluetoothServerTest.java @@ -29,10 +29,10 @@ public class BluetoothServerTest { config.put("uuid", UUID); // Create the plugin BluetoothPlugin plugin = - new BluetoothPlugin(new ImmediateExecutor(), 0L); + new BluetoothPlugin(new ImmediateExecutor(), callback, 0L); // Start the plugin System.out.println("Starting plugin"); - plugin.start(localProperties, remoteProperties, config, callback); + plugin.start(localProperties, remoteProperties, config); // Wait for a connection System.out.println("Waiting for connection"); synchronized(callback) { diff --git a/test/net/sf/briar/plugins/file/RemovableDrivePluginTest.java b/test/net/sf/briar/plugins/file/RemovableDrivePluginTest.java index 02f42665cde5e57a6cb01f9d1a6f29369d9c5be5..08b2b19e7c9b4d7b45fa5311aee65c1d020b84d1 100644 --- a/test/net/sf/briar/plugins/file/RemovableDrivePluginTest.java +++ b/test/net/sf/briar/plugins/file/RemovableDrivePluginTest.java @@ -48,13 +48,15 @@ public class RemovableDrivePluginTest extends TestCase { public void testGetId() { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); + callback, finder, monitor); assertEquals(RemovableDrivePlugin.TRANSPORT_ID, plugin.getId().getInt()); @@ -68,12 +70,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -82,8 +84,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); assertNull(plugin.createWriter(contactId)); @@ -100,12 +102,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -117,8 +119,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); assertNull(plugin.createWriter(contactId)); File[] files = drive1.listFiles(); @@ -137,12 +139,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -154,8 +156,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); assertNull(plugin.createWriter(contactId)); File[] files = drive1.listFiles(); @@ -176,12 +178,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -193,8 +195,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); assertNull(plugin.createWriter(contactId)); File[] files = drive1.listFiles(); @@ -215,12 +217,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -232,8 +234,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); assertNotNull(plugin.createWriter(contactId)); // The output file should exist and should be empty @@ -257,12 +259,12 @@ public class RemovableDrivePluginTest extends TestCase { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -275,8 +277,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); BatchTransportWriter writer = plugin.createWriter(contactId); assertNotNull(writer); @@ -303,20 +305,20 @@ public class RemovableDrivePluginTest extends TestCase { public void testEmptyDriveIsIgnored() throws Exception { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); plugin.driveInserted(testDir); @@ -327,13 +329,15 @@ public class RemovableDrivePluginTest extends TestCase { public void testFilenames() { Mockery context = new Mockery(); final Executor executor = context.mock(Executor.class); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); RemovableDrivePlugin plugin = new RemovableDrivePlugin(executor, - finder, monitor); + callback, finder, monitor); assertFalse(plugin.isPossibleConnectionFilename("abcdefg.dat")); assertFalse(plugin.isPossibleConnectionFilename("abcdefghi.dat")); @@ -348,20 +352,20 @@ public class RemovableDrivePluginTest extends TestCase { @Test public void testSmallFileIsIgnored() throws Exception { Mockery context = new Mockery(); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin( - new ImmediateExecutor(), finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + new ImmediateExecutor(), callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); File f = new File(testDir, "abcdefgh.dat"); OutputStream out = new FileOutputStream(f); @@ -377,12 +381,12 @@ public class RemovableDrivePluginTest extends TestCase { @Test public void testReaderIsCreated() throws Exception { Mockery context = new Mockery(); + final BatchTransportCallback callback = + context.mock(BatchTransportCallback.class); final RemovableDriveFinder finder = context.mock(RemovableDriveFinder.class); final RemovableDriveMonitor monitor = context.mock(RemovableDriveMonitor.class); - final BatchTransportCallback callback = - context.mock(BatchTransportCallback.class); context.checking(new Expectations() {{ oneOf(monitor).start(with(any(Callback.class))); @@ -390,8 +394,8 @@ public class RemovableDrivePluginTest extends TestCase { }}); RemovableDrivePlugin plugin = new RemovableDrivePlugin( - new ImmediateExecutor(), finder, monitor); - plugin.start(localProperties, remoteProperties, config, callback); + new ImmediateExecutor(), callback, finder, monitor); + plugin.start(localProperties, remoteProperties, config); File f = new File(testDir, "abcdefgh.dat"); OutputStream out = new FileOutputStream(f); diff --git a/test/net/sf/briar/plugins/socket/SimpleSocketPluginTest.java b/test/net/sf/briar/plugins/socket/SimpleSocketPluginTest.java index e94b20609134838259396a9e908b2bd5a153a5c5..14ddaf666fb943d879cb72474bb88079d12202ad 100644 --- a/test/net/sf/briar/plugins/socket/SimpleSocketPluginTest.java +++ b/test/net/sf/briar/plugins/socket/SimpleSocketPluginTest.java @@ -42,8 +42,8 @@ public class SimpleSocketPluginTest extends TestCase { localProperties.put("host", "127.0.0.1"); localProperties.put("port", "0"); SimpleSocketPlugin plugin = - new SimpleSocketPlugin(new ImmediateExecutor(), 10); - plugin.start(localProperties, remoteProperties, config, callback); + new SimpleSocketPlugin(new ImmediateExecutor(), callback, 0L); + plugin.start(localProperties, remoteProperties, config); // The plugin should have bound a socket and stored the port number assertNotNull(callback.localProperties); String host = callback.localProperties.get("host"); @@ -76,8 +76,8 @@ public class SimpleSocketPluginTest extends TestCase { public void testOutgoingConnection() throws Exception { StubStreamCallback callback = new StubStreamCallback(); SimpleSocketPlugin plugin = - new SimpleSocketPlugin(new ImmediateExecutor(), 10); - plugin.start(localProperties, remoteProperties, config, callback); + new SimpleSocketPlugin(new ImmediateExecutor(), callback, 0L); + plugin.start(localProperties, remoteProperties, config); // Listen on a local port final ServerSocket ss = new ServerSocket(); ss.bind(new InetSocketAddress("127.0.0.1", 0), 10); @@ -118,8 +118,8 @@ public class SimpleSocketPluginTest extends TestCase { localProperties.put("host", "127.0.0.1"); localProperties.put("port", "0"); SimpleSocketPlugin plugin = - new SimpleSocketPlugin(new ImmediateExecutor(), 10); - plugin.start(localProperties, remoteProperties, config, callback); + new SimpleSocketPlugin(new ImmediateExecutor(), callback, 0L); + plugin.start(localProperties, remoteProperties, config); // The plugin should have bound a socket and stored the port number assertNotNull(callback.localProperties); String host = callback.localProperties.get("host");