From 5876583f7c9bc20ee17d97aa0d5090decb2b42e0 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Sat, 15 Dec 2012 02:07:46 +0000
Subject: [PATCH] Moved reliability layer into its own package.

---
 .../briar/api/reliability}/ReadHandler.java   |  4 +-
 .../api/reliability}/ReliabilityLayer.java    |  4 +-
 .../reliability/ReliabilityLayerFactory.java  |  6 +++
 .../briar/api/reliability}/WriteHandler.java  |  4 +-
 .../net/sf/briar/plugins/PluginsModule.java   |  5 +-
 .../briar/plugins/modem/ModemFactoryImpl.java |  2 +
 .../net/sf/briar/plugins/modem/ModemImpl.java |  4 ++
 .../plugins/modem/ModemPluginFactory.java     | 10 ++--
 .../modem/ReliabilityLayerFactory.java        |  6 ---
 .../{plugins/modem => reliability}/Ack.java   |  2 +-
 .../{plugins/modem => reliability}/Crc32.java |  2 +-
 .../{plugins/modem => reliability}/Data.java  |  2 +-
 .../{plugins/modem => reliability}/Frame.java |  2 +-
 .../modem => reliability}/Receiver.java       |  4 +-
 .../ReceiverInputStream.java                  |  2 +-
 .../ReliabilityLayerFactoryImpl.java          |  6 ++-
 .../ReliabilityLayerImpl.java                 |  5 +-
 .../briar/reliability/ReliabilityModule.java  | 14 ++++++
 .../modem => reliability}/Sender.java         |  4 +-
 .../SenderOutputStream.java                   |  2 +-
 .../modem => reliability}/SlipDecoder.java    |  4 +-
 .../modem => reliability}/SlipEncoder.java    |  4 +-
 .../briar/plugins/modem/ModemClientTest.java  | 47 -------------------
 .../briar/plugins/modem/ModemServerTest.java  | 37 ---------------
 24 files changed, 68 insertions(+), 114 deletions(-)
 rename {briar-core/src/net/sf/briar/plugins/modem => briar-api/src/net/sf/briar/api/reliability}/ReadHandler.java (53%)
 rename {briar-core/src/net/sf/briar/plugins/modem => briar-api/src/net/sf/briar/api/reliability}/ReliabilityLayer.java (59%)
 create mode 100644 briar-api/src/net/sf/briar/api/reliability/ReliabilityLayerFactory.java
 rename {briar-core/src/net/sf/briar/plugins/modem => briar-api/src/net/sf/briar/api/reliability}/WriteHandler.java (53%)
 delete mode 100644 briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactory.java
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Ack.java (92%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Crc32.java (93%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Data.java (94%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Frame.java (96%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Receiver.java (97%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/ReceiverInputStream.java (97%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/ReliabilityLayerFactoryImpl.java (64%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/ReliabilityLayerImpl.java (95%)
 create mode 100644 briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/Sender.java (98%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/SenderOutputStream.java (98%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/SlipDecoder.java (95%)
 rename briar-core/src/net/sf/briar/{plugins/modem => reliability}/SlipEncoder.java (92%)
 delete mode 100644 briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
 delete mode 100644 briar-tests/src/net/sf/briar/plugins/modem/ModemServerTest.java

diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReadHandler.java b/briar-api/src/net/sf/briar/api/reliability/ReadHandler.java
similarity index 53%
rename from briar-core/src/net/sf/briar/plugins/modem/ReadHandler.java
rename to briar-api/src/net/sf/briar/api/reliability/ReadHandler.java
index 0e2bc8c971..4d91e5877c 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReadHandler.java
+++ b/briar-api/src/net/sf/briar/api/reliability/ReadHandler.java
@@ -1,8 +1,8 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.api.reliability;
 
 import java.io.IOException;
 
-interface ReadHandler {
+public interface ReadHandler {
 
 	void handleRead(byte[] b) throws IOException;
 }
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java b/briar-api/src/net/sf/briar/api/reliability/ReliabilityLayer.java
similarity index 59%
rename from briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java
rename to briar-api/src/net/sf/briar/api/reliability/ReliabilityLayer.java
index 6b9160eef7..0eba9e550a 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java
+++ b/briar-api/src/net/sf/briar/api/reliability/ReliabilityLayer.java
@@ -1,9 +1,9 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.api.reliability;
 
 import java.io.InputStream;
 import java.io.OutputStream;
 
-interface ReliabilityLayer extends ReadHandler, WriteHandler {
+public interface ReliabilityLayer extends ReadHandler, WriteHandler {
 
 	void start();
 
diff --git a/briar-api/src/net/sf/briar/api/reliability/ReliabilityLayerFactory.java b/briar-api/src/net/sf/briar/api/reliability/ReliabilityLayerFactory.java
new file mode 100644
index 0000000000..96b4a51b40
--- /dev/null
+++ b/briar-api/src/net/sf/briar/api/reliability/ReliabilityLayerFactory.java
@@ -0,0 +1,6 @@
+package net.sf.briar.api.reliability;
+
+public interface ReliabilityLayerFactory {
+
+	ReliabilityLayer createReliabilityLayer(WriteHandler writeHandler);
+}
diff --git a/briar-core/src/net/sf/briar/plugins/modem/WriteHandler.java b/briar-api/src/net/sf/briar/api/reliability/WriteHandler.java
similarity index 53%
rename from briar-core/src/net/sf/briar/plugins/modem/WriteHandler.java
rename to briar-api/src/net/sf/briar/api/reliability/WriteHandler.java
index fdf4d2c153..ef36266ea9 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/WriteHandler.java
+++ b/briar-api/src/net/sf/briar/api/reliability/WriteHandler.java
@@ -1,8 +1,8 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.api.reliability;
 
 import java.io.IOException;
 
-interface WriteHandler {
+public interface WriteHandler {
 
 	void handleWrite(byte[] b) throws IOException;
 }
diff --git a/briar-core/src/net/sf/briar/plugins/PluginsModule.java b/briar-core/src/net/sf/briar/plugins/PluginsModule.java
index 5003d1cfc1..968fb2425f 100644
--- a/briar-core/src/net/sf/briar/plugins/PluginsModule.java
+++ b/briar-core/src/net/sf/briar/plugins/PluginsModule.java
@@ -14,6 +14,7 @@ import net.sf.briar.api.plugins.duplex.DuplexPluginConfig;
 import net.sf.briar.api.plugins.duplex.DuplexPluginFactory;
 import net.sf.briar.api.plugins.simplex.SimplexPluginConfig;
 import net.sf.briar.api.plugins.simplex.SimplexPluginFactory;
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
 import net.sf.briar.plugins.bluetooth.BluetoothPluginFactory;
 import net.sf.briar.plugins.droidtooth.DroidtoothPluginFactory;
 import net.sf.briar.plugins.file.RemovableDrivePluginFactory;
@@ -62,6 +63,7 @@ public class PluginsModule extends AbstractModule {
 	DuplexPluginConfig getDuplexPluginConfig(
 			@PluginExecutor Executor pluginExecutor,
 			AndroidExecutor androidExecutor, Context appContext,
+			ReliabilityLayerFactory reliabilityFactory,
 			ShutdownManager shutdownManager) {
 		final Collection<DuplexPluginFactory> factories =
 				new ArrayList<DuplexPluginFactory>();
@@ -70,7 +72,8 @@ public class PluginsModule extends AbstractModule {
 					androidExecutor, appContext));
 		} else {
 			factories.add(new BluetoothPluginFactory(pluginExecutor));
-			factories.add(new ModemPluginFactory(pluginExecutor));
+			factories.add(new ModemPluginFactory(pluginExecutor,
+					reliabilityFactory));
 		}
 		factories.add(new LanTcpPluginFactory(pluginExecutor));
 		factories.add(new WanTcpPluginFactory(pluginExecutor, shutdownManager));
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java b/briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
index e9be7af29e..13ae308480 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
@@ -2,6 +2,8 @@ package net.sf.briar.plugins.modem;
 
 import java.util.concurrent.Executor;
 
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
+
 class ModemFactoryImpl implements ModemFactory {
 
 	private final Executor executor;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java b/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java
index 2d31dc9ca2..4266cde927 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java
+++ b/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java
@@ -12,6 +12,10 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.Semaphore;
 import java.util.logging.Logger;
 
+import net.sf.briar.api.reliability.ReliabilityLayer;
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
+import net.sf.briar.api.reliability.WriteHandler;
+
 import jssc.SerialPort;
 import jssc.SerialPortEvent;
 import jssc.SerialPortEventListener;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java b/briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
index 8d7bb69330..272a76a297 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
+++ b/briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
@@ -7,6 +7,7 @@ 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.api.protocol.TransportId;
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
 
 import org.h2.util.StringUtils;
 
@@ -15,9 +16,12 @@ public class ModemPluginFactory implements DuplexPluginFactory {
 	private static final long POLLING_INTERVAL = 60L * 60L * 1000L; // 1 hour
 
 	private final Executor pluginExecutor;
+	private final ModemFactory modemFactory;
 
-	public ModemPluginFactory(@PluginExecutor Executor pluginExecutor) {
+	public ModemPluginFactory(@PluginExecutor Executor pluginExecutor,
+			ReliabilityLayerFactory reliabilityFactory) {
 		this.pluginExecutor = pluginExecutor;
+		modemFactory = new ModemFactoryImpl(pluginExecutor, reliabilityFactory);
 	}
 
 	public TransportId getId() {
@@ -28,10 +32,6 @@ public class ModemPluginFactory implements DuplexPluginFactory {
 		// This plugin is not enabled by default
 		String enabled = callback.getConfig().get("enabled");
 		if(StringUtils.isNullOrEmpty(enabled)) return null;
-		ReliabilityLayerFactory reliabilityFactory =
-				new ReliabilityLayerFactoryImpl(pluginExecutor);
-		ModemFactory modemFactory = new ModemFactoryImpl(pluginExecutor,
-				reliabilityFactory);
 		return new ModemPlugin(pluginExecutor, modemFactory, callback,
 				POLLING_INTERVAL);
 	}
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactory.java b/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactory.java
deleted file mode 100644
index 0c5a46e3ae..0000000000
--- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactory.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package net.sf.briar.plugins.modem;
-
-interface ReliabilityLayerFactory {
-
-	ReliabilityLayer createReliabilityLayer(WriteHandler writeHandler);
-}
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Ack.java b/briar-core/src/net/sf/briar/reliability/Ack.java
similarity index 92%
rename from briar-core/src/net/sf/briar/plugins/modem/Ack.java
rename to briar-core/src/net/sf/briar/reliability/Ack.java
index 4f8e1da860..a8c437bf94 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Ack.java
+++ b/briar-core/src/net/sf/briar/reliability/Ack.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import net.sf.briar.util.ByteUtils;
 
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Crc32.java b/briar-core/src/net/sf/briar/reliability/Crc32.java
similarity index 93%
rename from briar-core/src/net/sf/briar/plugins/modem/Crc32.java
rename to briar-core/src/net/sf/briar/reliability/Crc32.java
index 8279d3c971..22e4540728 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Crc32.java
+++ b/briar-core/src/net/sf/briar/reliability/Crc32.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 class Crc32 {
 
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Data.java b/briar-core/src/net/sf/briar/reliability/Data.java
similarity index 94%
rename from briar-core/src/net/sf/briar/plugins/modem/Data.java
rename to briar-core/src/net/sf/briar/reliability/Data.java
index 4cfd7cc863..63f075dff6 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Data.java
+++ b/briar-core/src/net/sf/briar/reliability/Data.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 class Data extends Frame {
 
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Frame.java b/briar-core/src/net/sf/briar/reliability/Frame.java
similarity index 96%
rename from briar-core/src/net/sf/briar/plugins/modem/Frame.java
rename to briar-core/src/net/sf/briar/reliability/Frame.java
index 288c606844..2cbc117004 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Frame.java
+++ b/briar-core/src/net/sf/briar/reliability/Frame.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import net.sf.briar.util.ByteUtils;
 
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Receiver.java b/briar-core/src/net/sf/briar/reliability/Receiver.java
similarity index 97%
rename from briar-core/src/net/sf/briar/plugins/modem/Receiver.java
rename to briar-core/src/net/sf/briar/reliability/Receiver.java
index e4813f6932..ddb3394aa6 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Receiver.java
+++ b/briar-core/src/net/sf/briar/reliability/Receiver.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 import java.util.Comparator;
@@ -6,6 +6,8 @@ import java.util.Iterator;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
+import net.sf.briar.api.reliability.ReadHandler;
+
 class Receiver implements ReadHandler {
 
 	static final int MAX_WINDOW_SIZE = 8 * Data.MAX_PAYLOAD_LENGTH;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReceiverInputStream.java b/briar-core/src/net/sf/briar/reliability/ReceiverInputStream.java
similarity index 97%
rename from briar-core/src/net/sf/briar/plugins/modem/ReceiverInputStream.java
rename to briar-core/src/net/sf/briar/reliability/ReceiverInputStream.java
index 11e707acdf..27b26c311c 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReceiverInputStream.java
+++ b/briar-core/src/net/sf/briar/reliability/ReceiverInputStream.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactoryImpl.java b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
similarity index 64%
rename from briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactoryImpl.java
rename to briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
index 2b72b72ffb..5d32324c6d 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
@@ -1,7 +1,11 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.util.concurrent.Executor;
 
+import net.sf.briar.api.reliability.ReliabilityLayer;
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
+import net.sf.briar.api.reliability.WriteHandler;
+
 class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
 
 	private final Executor executor;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerImpl.java b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
similarity index 95%
rename from briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerImpl.java
rename to briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
index 2dc2f801d5..825c8ee7ca 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayerImpl.java
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.logging.Level.WARNING;
@@ -11,6 +11,9 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.logging.Logger;
 
+import net.sf.briar.api.reliability.ReliabilityLayer;
+import net.sf.briar.api.reliability.WriteHandler;
+
 class ReliabilityLayerImpl implements ReliabilityLayer {
 
 	private static final int TICK_INTERVAL = 500; // Milliseconds
diff --git a/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java b/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
new file mode 100644
index 0000000000..9f8e20034d
--- /dev/null
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
@@ -0,0 +1,14 @@
+package net.sf.briar.reliability;
+
+import net.sf.briar.api.reliability.ReliabilityLayerFactory;
+
+import com.google.inject.AbstractModule;
+
+public class ReliabilityModule extends AbstractModule {
+
+	@Override
+	protected void configure() {
+		bind(ReliabilityLayerFactory.class).to(
+				ReliabilityLayerFactoryImpl.class);
+	}
+}
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Sender.java b/briar-core/src/net/sf/briar/reliability/Sender.java
similarity index 98%
rename from briar-core/src/net/sf/briar/plugins/modem/Sender.java
rename to briar-core/src/net/sf/briar/reliability/Sender.java
index bb2ad8a7bb..313c1cb71b 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/Sender.java
+++ b/briar-core/src/net/sf/briar/reliability/Sender.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -6,6 +6,8 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 
+import net.sf.briar.api.reliability.WriteHandler;
+
 class Sender {
 
 	// All times are in milliseconds
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SenderOutputStream.java b/briar-core/src/net/sf/briar/reliability/SenderOutputStream.java
similarity index 98%
rename from briar-core/src/net/sf/briar/plugins/modem/SenderOutputStream.java
rename to briar-core/src/net/sf/briar/reliability/SenderOutputStream.java
index bed178ca55..3f3df7df1d 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/SenderOutputStream.java
+++ b/briar-core/src/net/sf/briar/reliability/SenderOutputStream.java
@@ -1,4 +1,4 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SlipDecoder.java b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java
similarity index 95%
rename from briar-core/src/net/sf/briar/plugins/modem/SlipDecoder.java
rename to briar-core/src/net/sf/briar/reliability/SlipDecoder.java
index a179f3d0ab..cfe3a464e9 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/SlipDecoder.java
+++ b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java
@@ -1,7 +1,9 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 
+import net.sf.briar.api.reliability.ReadHandler;
+
 class SlipDecoder implements ReadHandler {
 
 	// https://tools.ietf.org/html/rfc1055
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SlipEncoder.java b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java
similarity index 92%
rename from briar-core/src/net/sf/briar/plugins/modem/SlipEncoder.java
rename to briar-core/src/net/sf/briar/reliability/SlipEncoder.java
index 0fc327a43f..4f2459779a 100644
--- a/briar-core/src/net/sf/briar/plugins/modem/SlipEncoder.java
+++ b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java
@@ -1,7 +1,9 @@
-package net.sf.briar.plugins.modem;
+package net.sf.briar.reliability;
 
 import java.io.IOException;
 
+import net.sf.briar.api.reliability.WriteHandler;
+
 class SlipEncoder implements WriteHandler {
 
 	// https://tools.ietf.org/html/rfc1055
diff --git a/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java b/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
deleted file mode 100644
index 1a6deac1bb..0000000000
--- a/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package net.sf.briar.plugins.modem;
-
-import static java.util.logging.Level.INFO;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.logging.Logger;
-
-import net.sf.briar.api.ContactId;
-import net.sf.briar.api.TransportConfig;
-import net.sf.briar.api.TransportProperties;
-import net.sf.briar.plugins.DuplexClientTest;
-
-//This is not a JUnit test - it has to be run manually while the server test
-//is running on another machine
-public class ModemClientTest extends DuplexClientTest {
-
-	private ModemClientTest(Executor executor, String number) {
-		// Store the server's phone number
-		TransportProperties p = new TransportProperties();
-		p.put("number", number);
-		Map<ContactId, TransportProperties> remote =
-				Collections.singletonMap(contactId, p);
-		// Create the plugin
-		callback = new ClientCallback(new TransportConfig(),
-				new TransportProperties(), remote);
-		plugin = new ModemPlugin(executor, new ModemFactoryImpl(executor,
-				new ReliabilityLayerFactoryImpl(executor)), callback, 0L);
-	}
-
-	public static void main(String[] args) throws Exception {
-		if(args.length != 1) {
-			System.err.println("Please specify the server's phone number");
-			System.exit(1);
-		}
-		Logger.getLogger("net.sf.briar").setLevel(INFO);
-		ExecutorService executor = Executors.newCachedThreadPool();
-		try {
-			new ModemClientTest(executor, args[0]).run();
-		} finally {
-			executor.shutdown();
-		}
-	}
-}
diff --git a/briar-tests/src/net/sf/briar/plugins/modem/ModemServerTest.java b/briar-tests/src/net/sf/briar/plugins/modem/ModemServerTest.java
deleted file mode 100644
index 3b2850d707..0000000000
--- a/briar-tests/src/net/sf/briar/plugins/modem/ModemServerTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.sf.briar.plugins.modem;
-
-import static java.util.logging.Level.INFO;
-
-import java.util.Collections;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.logging.Logger;
-
-import net.sf.briar.api.TransportConfig;
-import net.sf.briar.api.TransportProperties;
-import net.sf.briar.plugins.DuplexServerTest;
-
-//This is not a JUnit test - it has to be run manually while the client test
-//is running on another machine
-public class ModemServerTest extends DuplexServerTest {
-
-	private ModemServerTest(Executor executor) {
-		// Create the plugin
-		callback = new ServerCallback(new TransportConfig(),
-				new TransportProperties(), Collections.singletonMap(contactId,
-						new TransportProperties()));
-		plugin = new ModemPlugin(executor, new ModemFactoryImpl(executor,
-				new ReliabilityLayerFactoryImpl(executor)), callback, 0L);
-	}
-
-	public static void main(String[] args) throws Exception {
-		Logger.getLogger("net.sf.briar").setLevel(INFO);
-		ExecutorService executor = Executors.newCachedThreadPool();
-		try {
-			new ModemServerTest(executor).run();
-		} finally {
-			executor.shutdown();
-		}
-	}
-}
-- 
GitLab