From 59dc065c558e9b71edebe027be6e329f4c72186a Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 6 Sep 2012 17:35:52 +0100
Subject: [PATCH] Plugin factories can supply clocks for their plugins if
 needed.

---
 .../sf/briar/api/plugins/duplex/DuplexPluginFactory.java | 4 +---
 .../briar/api/plugins/simplex/SimplexPluginFactory.java  | 4 +---
 components/net/sf/briar/plugins/PluginManagerImpl.java   | 9 +++------
 .../briar/plugins/bluetooth/BluetoothPluginFactory.java  | 6 +++---
 .../net/sf/briar/plugins/email/GmailPluginFactory.java   | 3 +--
 .../briar/plugins/file/RemovableDrivePluginFactory.java  | 3 +--
 .../briar/plugins/socket/SimpleSocketPluginFactory.java  | 3 +--
 .../net/sf/briar/plugins/tor/TorPluginFactory.java       | 3 +--
 test/net/sf/briar/plugins/PluginManagerImplTest.java     | 5 ++---
 test/net/sf/briar/plugins/email/GmailPluginTester.java   | 4 +---
 10 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java b/api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
index c790dc9b6e..5d9609ff90 100644
--- a/api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
+++ b/api/net/sf/briar/api/plugins/duplex/DuplexPluginFactory.java
@@ -2,10 +2,8 @@ package net.sf.briar.api.plugins.duplex;
 
 import java.util.concurrent.Executor;
 
-import net.sf.briar.clock.Clock;
-
 public interface DuplexPluginFactory {
 
-	DuplexPlugin createPlugin(Executor pluginExecutor, Clock clock,
+	DuplexPlugin createPlugin(Executor pluginExecutor,
 			DuplexPluginCallback callback);
 }
diff --git a/api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java b/api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
index 1da8775230..d114ec376b 100644
--- a/api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
+++ b/api/net/sf/briar/api/plugins/simplex/SimplexPluginFactory.java
@@ -2,10 +2,8 @@ package net.sf.briar.api.plugins.simplex;
 
 import java.util.concurrent.Executor;
 
-import net.sf.briar.clock.Clock;
-
 public interface SimplexPluginFactory {
 
-	SimplexPlugin createPlugin(Executor pluginExecutor, Clock clock,
+	SimplexPlugin createPlugin(Executor pluginExecutor,
 			SimplexPluginCallback callback);
 }
diff --git a/components/net/sf/briar/plugins/PluginManagerImpl.java b/components/net/sf/briar/plugins/PluginManagerImpl.java
index 0da6aef13f..ab05b6de48 100644
--- a/components/net/sf/briar/plugins/PluginManagerImpl.java
+++ b/components/net/sf/briar/plugins/PluginManagerImpl.java
@@ -35,7 +35,6 @@ import net.sf.briar.api.protocol.TransportId;
 import net.sf.briar.api.protocol.TransportIndex;
 import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.ui.UiCallback;
-import net.sf.briar.clock.Clock;
 
 import com.google.inject.Inject;
 
@@ -55,7 +54,6 @@ class PluginManagerImpl implements PluginManager {
 	};
 
 	private final ExecutorService pluginExecutor;
-	private final Clock clock;
 	private final DatabaseComponent db;
 	private final Poller poller;
 	private final ConnectionDispatcher dispatcher;
@@ -65,10 +63,9 @@ class PluginManagerImpl implements PluginManager {
 
 	@Inject
 	PluginManagerImpl(@PluginExecutor ExecutorService pluginExecutor,
-			Clock clock, DatabaseComponent db, Poller poller,
+			DatabaseComponent db, Poller poller,
 			ConnectionDispatcher dispatcher, UiCallback uiCallback) {
 		this.pluginExecutor = pluginExecutor;
-		this.clock = clock;
 		this.db = db;
 		this.poller = poller;
 		this.dispatcher = dispatcher;
@@ -91,7 +88,7 @@ class PluginManagerImpl implements PluginManager {
 						(SimplexPluginFactory) c.newInstance();
 				SimplexCallback callback = new SimplexCallback();
 				SimplexPlugin plugin = factory.createPlugin(pluginExecutor,
-						clock, callback);
+						callback);
 				if(plugin == null) {
 					if(LOG.isLoggable(Level.INFO)) {
 						LOG.info(factory.getClass().getSimpleName()
@@ -131,7 +128,7 @@ class PluginManagerImpl implements PluginManager {
 						(DuplexPluginFactory) c.newInstance();
 				DuplexCallback callback = new DuplexCallback();
 				DuplexPlugin plugin = factory.createPlugin(pluginExecutor,
-						clock, callback);
+						callback);
 				if(plugin == null) {
 					if(LOG.isLoggable(Level.INFO)) {
 						LOG.info(factory.getClass().getSimpleName()
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java b/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
index 1b138c0041..c1b49e2431 100644
--- a/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
+++ b/components/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
@@ -6,15 +6,15 @@ import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.plugins.duplex.DuplexPlugin;
 import net.sf.briar.api.plugins.duplex.DuplexPluginCallback;
 import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
-import net.sf.briar.clock.Clock;
+import net.sf.briar.clock.SystemClock;
 
 public class BluetoothPluginFactory implements DuplexPluginFactory {
 
 	private static final long POLLING_INTERVAL = 3L * 60L * 1000L; // 3 mins
 
 	public DuplexPlugin createPlugin(@PluginExecutor Executor pluginExecutor,
-			Clock clock, DuplexPluginCallback callback) {
-		return new BluetoothPlugin(pluginExecutor, clock, callback,
+			DuplexPluginCallback callback) {
+		return new BluetoothPlugin(pluginExecutor, new SystemClock(), callback,
 				POLLING_INTERVAL);
 	}
 }
diff --git a/components/net/sf/briar/plugins/email/GmailPluginFactory.java b/components/net/sf/briar/plugins/email/GmailPluginFactory.java
index 4b912e28d0..244a89373d 100644
--- a/components/net/sf/briar/plugins/email/GmailPluginFactory.java
+++ b/components/net/sf/briar/plugins/email/GmailPluginFactory.java
@@ -5,11 +5,10 @@ import java.util.concurrent.Executor;
 import net.sf.briar.api.plugins.simplex.SimplexPlugin;
 import net.sf.briar.api.plugins.simplex.SimplexPluginCallback;
 import net.sf.briar.api.plugins.simplex.SimplexPluginFactory;
-import net.sf.briar.clock.Clock;
 
 public class GmailPluginFactory implements SimplexPluginFactory {
 
-	public SimplexPlugin createPlugin(Executor pluginExecutor, Clock clock,
+	public SimplexPlugin createPlugin(Executor pluginExecutor,
 			SimplexPluginCallback callback) {
 		
 		return new GmailPlugin(pluginExecutor, callback);
diff --git a/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java b/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
index 6a453f559b..689efc8502 100644
--- a/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
+++ b/components/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
@@ -6,7 +6,6 @@ import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.plugins.simplex.SimplexPlugin;
 import net.sf.briar.api.plugins.simplex.SimplexPluginCallback;
 import net.sf.briar.api.plugins.simplex.SimplexPluginFactory;
-import net.sf.briar.clock.Clock;
 import net.sf.briar.util.OsUtils;
 
 public class RemovableDrivePluginFactory implements SimplexPluginFactory {
@@ -14,7 +13,7 @@ public class RemovableDrivePluginFactory implements SimplexPluginFactory {
 	private static final long POLLING_INTERVAL = 10L * 1000L; // 10 seconds
 
 	public SimplexPlugin createPlugin(@PluginExecutor Executor pluginExecutor,
-			Clock clock, SimplexPluginCallback callback) {
+			SimplexPluginCallback callback) {
 		RemovableDriveFinder finder;
 		RemovableDriveMonitor monitor;
 		if(OsUtils.isLinux()) {
diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java b/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
index 9ee36419eb..d8499fb32e 100644
--- a/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
+++ b/components/net/sf/briar/plugins/socket/SimpleSocketPluginFactory.java
@@ -6,14 +6,13 @@ import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.plugins.duplex.DuplexPlugin;
 import net.sf.briar.api.plugins.duplex.DuplexPluginCallback;
 import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
-import net.sf.briar.clock.Clock;
 
 public class SimpleSocketPluginFactory implements DuplexPluginFactory {
 
 	private static final long POLLING_INTERVAL = 5L * 60L * 1000L; // 5 mins
 
 	public DuplexPlugin createPlugin(@PluginExecutor Executor pluginExecutor,
-			Clock clock, DuplexPluginCallback callback) {
+			DuplexPluginCallback callback) {
 		return new SimpleSocketPlugin(pluginExecutor, callback,
 				POLLING_INTERVAL);
 	}
diff --git a/components/net/sf/briar/plugins/tor/TorPluginFactory.java b/components/net/sf/briar/plugins/tor/TorPluginFactory.java
index 78cd3d5e92..e7caf6aa19 100644
--- a/components/net/sf/briar/plugins/tor/TorPluginFactory.java
+++ b/components/net/sf/briar/plugins/tor/TorPluginFactory.java
@@ -6,14 +6,13 @@ import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.plugins.duplex.DuplexPlugin;
 import net.sf.briar.api.plugins.duplex.DuplexPluginCallback;
 import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
-import net.sf.briar.clock.Clock;
 
 public class TorPluginFactory implements DuplexPluginFactory {
 
 	private static final long POLLING_INTERVAL = 15L * 60L * 1000L; // 15 mins
 
 	public DuplexPlugin createPlugin(@PluginExecutor Executor pluginExecutor,
-			Clock clock, DuplexPluginCallback callback) {
+			DuplexPluginCallback callback) {
 		return new TorPlugin(pluginExecutor, callback, POLLING_INTERVAL);
 	}
 }
diff --git a/test/net/sf/briar/plugins/PluginManagerImplTest.java b/test/net/sf/briar/plugins/PluginManagerImplTest.java
index c1c1a30f90..8c734e1ae3 100644
--- a/test/net/sf/briar/plugins/PluginManagerImplTest.java
+++ b/test/net/sf/briar/plugins/PluginManagerImplTest.java
@@ -13,7 +13,6 @@ import net.sf.briar.api.protocol.TransportId;
 import net.sf.briar.api.protocol.TransportIndex;
 import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.ui.UiCallback;
-import net.sf.briar.clock.SystemClock;
 
 import org.jmock.Expectations;
 import org.jmock.Mockery;
@@ -48,8 +47,8 @@ public class PluginManagerImplTest extends BriarTestCase {
 			oneOf(poller).stop();
 		}});
 		ExecutorService executor = Executors.newCachedThreadPool();
-		PluginManagerImpl p = new PluginManagerImpl(executor, new SystemClock(),
-				db, poller, dispatcher, uiCallback);
+		PluginManagerImpl p = new PluginManagerImpl(executor, db, poller,
+				dispatcher, uiCallback);
 		// We expect either 3 or 4 plugins to be started, depending on whether
 		// the test machine has a Bluetooth device
 		int started = p.start();
diff --git a/test/net/sf/briar/plugins/email/GmailPluginTester.java b/test/net/sf/briar/plugins/email/GmailPluginTester.java
index 17145c0e26..3db67819f8 100644
--- a/test/net/sf/briar/plugins/email/GmailPluginTester.java
+++ b/test/net/sf/briar/plugins/email/GmailPluginTester.java
@@ -14,7 +14,6 @@ import net.sf.briar.api.TransportProperties;
 import net.sf.briar.api.plugins.simplex.SimplexPluginCallback;
 import net.sf.briar.api.plugins.simplex.SimplexTransportReader;
 import net.sf.briar.api.plugins.simplex.SimplexTransportWriter;
-import net.sf.briar.clock.SystemClock;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -102,8 +101,7 @@ Map<ContactId,TransportProperties> map = new HashMap<ContactId, TransportPropert
 	public void testPluginFactoryCreation()
 	{
 		GmailPluginFactory plugin = new GmailPluginFactory();
-		plugin.createPlugin(Executors.newSingleThreadExecutor(),
-				new SystemClock(), callback);
+		plugin.createPlugin(Executors.newSingleThreadExecutor(), callback);
 	}
 	
 	@Test
-- 
GitLab