From 04176394109470b73eabd450246297d7fa7f7a95 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Mon, 28 Mar 2016 11:28:46 +0100 Subject: [PATCH] Merge duplex and simplex plugin config classes. --- .../plugins/AndroidPluginsModule.java | 32 +++++++--------- .../api/plugins/PluginConfig.java | 13 +++++++ .../plugins/duplex/DuplexPluginConfig.java | 8 ---- .../plugins/simplex/SimplexPluginConfig.java | 8 ---- .../plugins/PluginManagerImpl.java | 16 +++----- .../plugins/DesktopPluginsModule.java | 38 +++++++++---------- .../plugins/PluginManagerImplTest.java | 17 +++------ 7 files changed, 56 insertions(+), 76 deletions(-) create mode 100644 briar-api/src/org/briarproject/api/plugins/PluginConfig.java delete mode 100644 briar-api/src/org/briarproject/api/plugins/duplex/DuplexPluginConfig.java delete mode 100644 briar-api/src/org/briarproject/api/plugins/simplex/SimplexPluginConfig.java diff --git a/briar-android/src/org/briarproject/plugins/AndroidPluginsModule.java b/briar-android/src/org/briarproject/plugins/AndroidPluginsModule.java index 7718122f01..feccd77ff4 100644 --- a/briar-android/src/org/briarproject/plugins/AndroidPluginsModule.java +++ b/briar-android/src/org/briarproject/plugins/AndroidPluginsModule.java @@ -7,9 +7,8 @@ import org.briarproject.android.api.AndroidExecutor; import org.briarproject.api.event.EventBus; import org.briarproject.api.lifecycle.IoExecutor; import org.briarproject.api.plugins.BackoffFactory; -import org.briarproject.api.plugins.duplex.DuplexPluginConfig; +import org.briarproject.api.plugins.PluginConfig; import org.briarproject.api.plugins.duplex.DuplexPluginFactory; -import org.briarproject.api.plugins.simplex.SimplexPluginConfig; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.system.LocationUtils; import org.briarproject.plugins.droidtooth.DroidtoothPluginFactory; @@ -29,17 +28,8 @@ import dagger.Provides; public class AndroidPluginsModule { @Provides - SimplexPluginConfig provideSimplexPluginConfig() { - return new SimplexPluginConfig() { - public Collection<SimplexPluginFactory> getFactories() { - return Collections.emptyList(); - } - }; - } - - @Provides - public DuplexPluginConfig provideDuplexPluginConfig( - @IoExecutor Executor ioExecutor, AndroidExecutor androidExecutor, + public PluginConfig providePluginConfig(@IoExecutor Executor ioExecutor, + AndroidExecutor androidExecutor, SecureRandom random, BackoffFactory backoffFactory, Application app, LocationUtils locationUtils, EventBus eventBus) { Context appContext = app.getApplicationContext(); @@ -49,13 +39,19 @@ public class AndroidPluginsModule { locationUtils, eventBus); DuplexPluginFactory lan = new AndroidLanTcpPluginFactory(ioExecutor, backoffFactory, appContext); - final Collection<DuplexPluginFactory> factories = + final Collection<DuplexPluginFactory> duplex = Arrays.asList(bluetooth, tor, lan); - return new DuplexPluginConfig() { - public Collection<DuplexPluginFactory> getFactories() { - return factories; + return new PluginConfig() { + + @Override + public Collection<DuplexPluginFactory> getDuplexFactories() { + return duplex; + } + + @Override + public Collection<SimplexPluginFactory> getSimplexFactories() { + return Collections.emptyList(); } }; } - } diff --git a/briar-api/src/org/briarproject/api/plugins/PluginConfig.java b/briar-api/src/org/briarproject/api/plugins/PluginConfig.java new file mode 100644 index 0000000000..7fda14476e --- /dev/null +++ b/briar-api/src/org/briarproject/api/plugins/PluginConfig.java @@ -0,0 +1,13 @@ +package org.briarproject.api.plugins; + +import org.briarproject.api.plugins.duplex.DuplexPluginFactory; +import org.briarproject.api.plugins.simplex.SimplexPluginFactory; + +import java.util.Collection; + +public interface PluginConfig { + + Collection<DuplexPluginFactory> getDuplexFactories(); + + Collection<SimplexPluginFactory> getSimplexFactories(); +} diff --git a/briar-api/src/org/briarproject/api/plugins/duplex/DuplexPluginConfig.java b/briar-api/src/org/briarproject/api/plugins/duplex/DuplexPluginConfig.java deleted file mode 100644 index fc17637196..0000000000 --- a/briar-api/src/org/briarproject/api/plugins/duplex/DuplexPluginConfig.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.briarproject.api.plugins.duplex; - -import java.util.Collection; - -public interface DuplexPluginConfig { - - Collection<DuplexPluginFactory> getFactories(); -} diff --git a/briar-api/src/org/briarproject/api/plugins/simplex/SimplexPluginConfig.java b/briar-api/src/org/briarproject/api/plugins/simplex/SimplexPluginConfig.java deleted file mode 100644 index 59f4f6a079..0000000000 --- a/briar-api/src/org/briarproject/api/plugins/simplex/SimplexPluginConfig.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.briarproject.api.plugins.simplex; - -import java.util.Collection; - -public interface SimplexPluginConfig { - - Collection<SimplexPluginFactory> getFactories(); -} diff --git a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java index bd110d0cf6..85aa73e080 100644 --- a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java +++ b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java @@ -13,17 +13,16 @@ import org.briarproject.api.lifecycle.Service; import org.briarproject.api.plugins.ConnectionManager; import org.briarproject.api.plugins.Plugin; import org.briarproject.api.plugins.PluginCallback; +import org.briarproject.api.plugins.PluginConfig; import org.briarproject.api.plugins.PluginManager; import org.briarproject.api.plugins.TransportConnectionReader; import org.briarproject.api.plugins.TransportConnectionWriter; import org.briarproject.api.plugins.duplex.DuplexPlugin; import org.briarproject.api.plugins.duplex.DuplexPluginCallback; -import org.briarproject.api.plugins.duplex.DuplexPluginConfig; import org.briarproject.api.plugins.duplex.DuplexPluginFactory; import org.briarproject.api.plugins.duplex.DuplexTransportConnection; import org.briarproject.api.plugins.simplex.SimplexPlugin; import org.briarproject.api.plugins.simplex.SimplexPluginCallback; -import org.briarproject.api.plugins.simplex.SimplexPluginConfig; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.properties.TransportProperties; import org.briarproject.api.properties.TransportPropertyManager; @@ -56,8 +55,7 @@ class PluginManagerImpl implements PluginManager, Service { private final Executor ioExecutor; private final EventBus eventBus; - private final SimplexPluginConfig simplexPluginConfig; - private final DuplexPluginConfig duplexPluginConfig; + private final PluginConfig pluginConfig; private final Clock clock; private final DatabaseComponent db; private final Poller poller; @@ -71,8 +69,7 @@ class PluginManagerImpl implements PluginManager, Service { @Inject PluginManagerImpl(@IoExecutor Executor ioExecutor, EventBus eventBus, - SimplexPluginConfig simplexPluginConfig, - DuplexPluginConfig duplexPluginConfig, Clock clock, + PluginConfig pluginConfig, Clock clock, DatabaseComponent db, Poller poller, ConnectionManager connectionManager, SettingsManager settingsManager, @@ -80,8 +77,7 @@ class PluginManagerImpl implements PluginManager, Service { UiCallback uiCallback) { this.ioExecutor = ioExecutor; this.eventBus = eventBus; - this.simplexPluginConfig = simplexPluginConfig; - this.duplexPluginConfig = duplexPluginConfig; + this.pluginConfig = pluginConfig; this.clock = clock; this.db = db; this.poller = poller; @@ -99,14 +95,14 @@ class PluginManagerImpl implements PluginManager, Service { // Instantiate and start the simplex plugins LOG.info("Starting simplex plugins"); Collection<SimplexPluginFactory> sFactories = - simplexPluginConfig.getFactories(); + pluginConfig.getSimplexFactories(); final CountDownLatch sLatch = new CountDownLatch(sFactories.size()); for (SimplexPluginFactory factory : sFactories) ioExecutor.execute(new SimplexPluginStarter(factory, sLatch)); // Instantiate and start the duplex plugins LOG.info("Starting duplex plugins"); Collection<DuplexPluginFactory> dFactories = - duplexPluginConfig.getFactories(); + pluginConfig.getDuplexFactories(); final CountDownLatch dLatch = new CountDownLatch(dFactories.size()); for (DuplexPluginFactory factory : dFactories) ioExecutor.execute(new DuplexPluginStarter(factory, dLatch)); diff --git a/briar-desktop/src/org/briarproject/plugins/DesktopPluginsModule.java b/briar-desktop/src/org/briarproject/plugins/DesktopPluginsModule.java index 6d727a6d89..912a0a7d7a 100644 --- a/briar-desktop/src/org/briarproject/plugins/DesktopPluginsModule.java +++ b/briar-desktop/src/org/briarproject/plugins/DesktopPluginsModule.java @@ -3,9 +3,8 @@ package org.briarproject.plugins; import org.briarproject.api.lifecycle.IoExecutor; import org.briarproject.api.lifecycle.ShutdownManager; import org.briarproject.api.plugins.BackoffFactory; -import org.briarproject.api.plugins.duplex.DuplexPluginConfig; +import org.briarproject.api.plugins.PluginConfig; import org.briarproject.api.plugins.duplex.DuplexPluginFactory; -import org.briarproject.api.plugins.simplex.SimplexPluginConfig; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.reliability.ReliabilityLayerFactory; import org.briarproject.plugins.bluetooth.BluetoothPluginFactory; @@ -27,21 +26,7 @@ import dagger.Provides; public class DesktopPluginsModule extends PluginsModule { @Provides - SimplexPluginConfig getSimplexPluginConfig( - @IoExecutor Executor ioExecutor) { - SimplexPluginFactory removable = - new RemovableDrivePluginFactory(ioExecutor); - final Collection<SimplexPluginFactory> factories = - Collections.singletonList(removable); - return new SimplexPluginConfig() { - public Collection<SimplexPluginFactory> getFactories() { - return factories; - } - }; - } - - @Provides - DuplexPluginConfig getDuplexPluginConfig(@IoExecutor Executor ioExecutor, + PluginConfig getPluginConfig(@IoExecutor Executor ioExecutor, SecureRandom random, BackoffFactory backoffFactory, ReliabilityLayerFactory reliabilityFactory, ShutdownManager shutdownManager) { @@ -53,11 +38,22 @@ public class DesktopPluginsModule extends PluginsModule { backoffFactory); DuplexPluginFactory wan = new WanTcpPluginFactory(ioExecutor, backoffFactory, shutdownManager); - final Collection<DuplexPluginFactory> factories = + SimplexPluginFactory removable = + new RemovableDrivePluginFactory(ioExecutor); + final Collection<SimplexPluginFactory> simplex = + Collections.singletonList(removable); + final Collection<DuplexPluginFactory> duplex = Arrays.asList(bluetooth, modem, lan, wan); - return new DuplexPluginConfig() { - public Collection<DuplexPluginFactory> getFactories() { - return factories; + return new PluginConfig() { + + @Override + public Collection<DuplexPluginFactory> getDuplexFactories() { + return duplex; + } + + @Override + public Collection<SimplexPluginFactory> getSimplexFactories() { + return simplex; } }; } diff --git a/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java b/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java index 52b5b5448a..e6efbc5e54 100644 --- a/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java +++ b/briar-tests/src/org/briarproject/plugins/PluginManagerImplTest.java @@ -6,13 +6,12 @@ import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.Transaction; import org.briarproject.api.event.EventBus; import org.briarproject.api.plugins.ConnectionManager; +import org.briarproject.api.plugins.PluginConfig; import org.briarproject.api.plugins.duplex.DuplexPlugin; import org.briarproject.api.plugins.duplex.DuplexPluginCallback; -import org.briarproject.api.plugins.duplex.DuplexPluginConfig; import org.briarproject.api.plugins.duplex.DuplexPluginFactory; import org.briarproject.api.plugins.simplex.SimplexPlugin; import org.briarproject.api.plugins.simplex.SimplexPluginCallback; -import org.briarproject.api.plugins.simplex.SimplexPluginConfig; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.properties.TransportPropertyManager; import org.briarproject.api.settings.SettingsManager; @@ -40,10 +39,7 @@ public class PluginManagerImplTest extends BriarTestCase { }}; final Executor ioExecutor = Executors.newSingleThreadExecutor(); final EventBus eventBus = context.mock(EventBus.class); - final SimplexPluginConfig simplexPluginConfig = - context.mock(SimplexPluginConfig.class); - final DuplexPluginConfig duplexPluginConfig = - context.mock(DuplexPluginConfig.class); + final PluginConfig pluginConfig = context.mock(PluginConfig.class); final DatabaseComponent db = context.mock(DatabaseComponent.class); final Poller poller = context.mock(Poller.class); final ConnectionManager connectionManager = @@ -79,7 +75,7 @@ public class PluginManagerImplTest extends BriarTestCase { final TransportId duplexFailId = new TransportId("duplex1"); context.checking(new Expectations() {{ // First simplex plugin - oneOf(simplexPluginConfig).getFactories(); + oneOf(pluginConfig).getSimplexFactories(); will(returnValue(Arrays.asList(simplexFactory, simplexFailFactory))); oneOf(simplexFactory).getId(); @@ -114,7 +110,7 @@ public class PluginManagerImplTest extends BriarTestCase { oneOf(simplexFailPlugin).start(); will(returnValue(false)); // Failed to start // First duplex plugin - oneOf(duplexPluginConfig).getFactories(); + oneOf(pluginConfig).getDuplexFactories(); will(returnValue(Arrays.asList(duplexFactory, duplexFailFactory))); oneOf(duplexFactory).getId(); will(returnValue(duplexId)); @@ -144,9 +140,8 @@ public class PluginManagerImplTest extends BriarTestCase { oneOf(duplexPlugin).stop(); }}); PluginManagerImpl p = new PluginManagerImpl(ioExecutor, eventBus, - simplexPluginConfig, duplexPluginConfig, clock, db, poller, - connectionManager, settingsManager, transportPropertyManager, - uiCallback); + pluginConfig, clock, db, poller, connectionManager, + settingsManager, transportPropertyManager, uiCallback); // Two plugins should be started and stopped assertTrue(p.start()); -- GitLab