From 0ef1fcb686e0761912b968e82035520555b4722d Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Fri, 14 Oct 2011 21:49:58 +0100
Subject: [PATCH] De-uglified some code and moved two API classes.

---
 .../api/transport/BatchConnectionFactory.java | 13 +++++++++
 .../transport/StreamConnectionFactory.java    | 13 +++++++++
 .../batch/BatchConnectionFactory.java         | 15 ----------
 .../stream/StreamConnectionFactory.java       | 14 ----------
 .../transport/ConnectionDispatcherImpl.java   | 28 +++++--------------
 .../batch/BatchConnectionFactoryImpl.java     | 26 ++++++++++++-----
 .../batch/IncomingBatchConnection.java        |  4 +--
 .../batch/OutgoingBatchConnection.java        |  4 +--
 .../transport/batch/TransportBatchModule.java |  2 +-
 .../transport/stream/StreamConnection.java    |  4 +--
 .../stream/StreamConnectionFactoryImpl.java   | 22 +++++++--------
 .../batch/BatchConnectionReadWriteTest.java   |  4 +--
 12 files changed, 72 insertions(+), 77 deletions(-)
 create mode 100644 api/net/sf/briar/api/transport/BatchConnectionFactory.java
 create mode 100644 api/net/sf/briar/api/transport/StreamConnectionFactory.java
 delete mode 100644 api/net/sf/briar/api/transport/batch/BatchConnectionFactory.java
 delete mode 100644 api/net/sf/briar/api/transport/stream/StreamConnectionFactory.java

diff --git a/api/net/sf/briar/api/transport/BatchConnectionFactory.java b/api/net/sf/briar/api/transport/BatchConnectionFactory.java
new file mode 100644
index 0000000000..547dc83a74
--- /dev/null
+++ b/api/net/sf/briar/api/transport/BatchConnectionFactory.java
@@ -0,0 +1,13 @@
+package net.sf.briar.api.transport;
+
+import net.sf.briar.api.ContactId;
+import net.sf.briar.api.TransportId;
+
+public interface BatchConnectionFactory {
+
+	void createIncomingConnection(ContactId c, BatchTransportReader r,
+			byte[] encryptedIv);
+
+	void createOutgoingConnection(TransportId t, ContactId c,
+			BatchTransportWriter w);
+}
diff --git a/api/net/sf/briar/api/transport/StreamConnectionFactory.java b/api/net/sf/briar/api/transport/StreamConnectionFactory.java
new file mode 100644
index 0000000000..933b9bb9c6
--- /dev/null
+++ b/api/net/sf/briar/api/transport/StreamConnectionFactory.java
@@ -0,0 +1,13 @@
+package net.sf.briar.api.transport;
+
+import net.sf.briar.api.ContactId;
+import net.sf.briar.api.TransportId;
+
+public interface StreamConnectionFactory {
+
+	void createIncomingConnection(ContactId c, StreamTransportConnection s,
+			byte[] encryptedIv);
+
+	void createOutgoingConnection(TransportId t, ContactId c,
+			StreamTransportConnection s);
+}
diff --git a/api/net/sf/briar/api/transport/batch/BatchConnectionFactory.java b/api/net/sf/briar/api/transport/batch/BatchConnectionFactory.java
deleted file mode 100644
index 590ffc25de..0000000000
--- a/api/net/sf/briar/api/transport/batch/BatchConnectionFactory.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package net.sf.briar.api.transport.batch;
-
-import net.sf.briar.api.ContactId;
-import net.sf.briar.api.TransportId;
-import net.sf.briar.api.transport.BatchTransportReader;
-import net.sf.briar.api.transport.BatchTransportWriter;
-
-public interface BatchConnectionFactory {
-
-	Runnable createIncomingConnection(ContactId c, BatchTransportReader r,
-			byte[] encryptedIv);
-
-	Runnable createOutgoingConnection(TransportId t, ContactId c,
-			BatchTransportWriter w);
-}
diff --git a/api/net/sf/briar/api/transport/stream/StreamConnectionFactory.java b/api/net/sf/briar/api/transport/stream/StreamConnectionFactory.java
deleted file mode 100644
index e255c4acc0..0000000000
--- a/api/net/sf/briar/api/transport/stream/StreamConnectionFactory.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.sf.briar.api.transport.stream;
-
-import net.sf.briar.api.ContactId;
-import net.sf.briar.api.TransportId;
-import net.sf.briar.api.transport.StreamTransportConnection;
-
-public interface StreamConnectionFactory {
-
-	Runnable[] createIncomingConnection(ContactId c,
-			StreamTransportConnection s, byte[] encryptedIv);
-
-	Runnable[] createOutgoingConnection(TransportId t, ContactId c,
-			StreamTransportConnection s);
-}
diff --git a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
index 1f1185bb9c..97a815a1ca 100644
--- a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
+++ b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java
@@ -4,39 +4,35 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.concurrent.Executor;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.db.DbException;
+import net.sf.briar.api.transport.BatchConnectionFactory;
 import net.sf.briar.api.transport.BatchTransportReader;
 import net.sf.briar.api.transport.BatchTransportWriter;
 import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.transport.ConnectionRecogniser;
 import net.sf.briar.api.transport.ConnectionRecogniserFactory;
+import net.sf.briar.api.transport.StreamConnectionFactory;
 import net.sf.briar.api.transport.StreamTransportConnection;
 import net.sf.briar.api.transport.TransportConstants;
-import net.sf.briar.api.transport.batch.BatchConnectionFactory;
-import net.sf.briar.api.transport.stream.StreamConnectionFactory;
 
 public class ConnectionDispatcherImpl implements ConnectionDispatcher {
 
 	private static final Logger LOG =
 		Logger.getLogger(ConnectionDispatcherImpl.class.getName());
 
-	private final Executor executor;
 	private final ConnectionRecogniserFactory recFactory;
 	private final BatchConnectionFactory batchConnFactory;
 	private final StreamConnectionFactory streamConnFactory;
 	private final Map<TransportId, ConnectionRecogniser> recognisers;
 
-	ConnectionDispatcherImpl(Executor executor,
-			ConnectionRecogniserFactory recFactory,
+	ConnectionDispatcherImpl(ConnectionRecogniserFactory recFactory,
 			BatchConnectionFactory batchConnFactory,
 			StreamConnectionFactory streamConnFactory) {
-		this.executor = executor;
 		this.recFactory = recFactory;
 		this.batchConnFactory = batchConnFactory;
 		this.streamConnFactory = streamConnFactory;
@@ -67,9 +63,7 @@ public class ConnectionDispatcherImpl implements ConnectionDispatcher {
 			r.dispose(false);
 			return;
 		}
-		// Pass the connection to the executor and return
-		executor.execute(batchConnFactory.createIncomingConnection(c, r,
-				encryptedIv));
+		batchConnFactory.createIncomingConnection(c, r, encryptedIv);
 	}
 
 	private byte[] readIv(InputStream in) throws IOException {
@@ -96,7 +90,7 @@ public class ConnectionDispatcherImpl implements ConnectionDispatcher {
 
 	public void dispatchWriter(TransportId t, ContactId c,
 			BatchTransportWriter w) {
-		executor.execute(batchConnFactory.createOutgoingConnection(t, c, w));
+		batchConnFactory.createOutgoingConnection(t, c, w);
 	}
 
 	public void dispatchIncomingConnection(TransportId t,
@@ -124,19 +118,11 @@ public class ConnectionDispatcherImpl implements ConnectionDispatcher {
 			s.dispose(false);
 			return;
 		}
-		// Pass the connection to the executor and return
-		Runnable[] r = streamConnFactory.createIncomingConnection(c, s,
-				encryptedIv);
-		assert r.length == 2;
-		executor.execute(r[0]); // Write
-		executor.execute(r[1]); // Read
+		streamConnFactory.createIncomingConnection(c, s, encryptedIv);
 	}
 
 	public void dispatchOutgoingConnection(TransportId t, ContactId c,
 			StreamTransportConnection s) {
-		Runnable[] r = streamConnFactory.createOutgoingConnection(t, c, s);
-		assert r.length == 2;
-		executor.execute(r[0]); // Write
-		executor.execute(r[1]); // Read
+		streamConnFactory.createOutgoingConnection(t, c, s);
 	}
 }
diff --git a/components/net/sf/briar/transport/batch/BatchConnectionFactoryImpl.java b/components/net/sf/briar/transport/batch/BatchConnectionFactoryImpl.java
index bc741c2f6e..d67f109dc6 100644
--- a/components/net/sf/briar/transport/batch/BatchConnectionFactoryImpl.java
+++ b/components/net/sf/briar/transport/batch/BatchConnectionFactoryImpl.java
@@ -5,11 +5,11 @@ import net.sf.briar.api.TransportId;
 import net.sf.briar.api.db.DatabaseComponent;
 import net.sf.briar.api.protocol.ProtocolReaderFactory;
 import net.sf.briar.api.protocol.writers.ProtocolWriterFactory;
+import net.sf.briar.api.transport.BatchConnectionFactory;
 import net.sf.briar.api.transport.BatchTransportReader;
 import net.sf.briar.api.transport.BatchTransportWriter;
 import net.sf.briar.api.transport.ConnectionReaderFactory;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
-import net.sf.briar.api.transport.batch.BatchConnectionFactory;
 
 import com.google.inject.Inject;
 
@@ -33,15 +33,27 @@ class BatchConnectionFactoryImpl implements BatchConnectionFactory {
 		this.protoWriterFactory = protoWriterFactory;
 	}
 
-	public Runnable createIncomingConnection(ContactId c,
+	public void createIncomingConnection(ContactId c,
 			BatchTransportReader r, byte[] encryptedIv) {
-		return new IncomingBatchConnection(connReaderFactory, db,
-				protoReaderFactory, c, r, encryptedIv);
+		final IncomingBatchConnection conn = new IncomingBatchConnection(
+				connReaderFactory, db, protoReaderFactory, c, r, encryptedIv);
+		Runnable read = new Runnable() {
+			public void run() {
+				conn.read();
+			}
+		};
+		new Thread(read).start();
 	}
 
-	public Runnable createOutgoingConnection(TransportId t, ContactId c,
+	public void createOutgoingConnection(TransportId t, ContactId c,
 			BatchTransportWriter w) {
-		return new OutgoingBatchConnection(connWriterFactory, db,
-				protoWriterFactory, t, c, w);
+		final OutgoingBatchConnection conn = new OutgoingBatchConnection(
+				connWriterFactory, db, protoWriterFactory, t, c, w);
+		Runnable write = new Runnable() {
+			public void run() {
+				conn.write();
+			}
+		};
+		new Thread(write).start();
 	}
 }
diff --git a/components/net/sf/briar/transport/batch/IncomingBatchConnection.java b/components/net/sf/briar/transport/batch/IncomingBatchConnection.java
index ec43c1ce58..5756a71cd9 100644
--- a/components/net/sf/briar/transport/batch/IncomingBatchConnection.java
+++ b/components/net/sf/briar/transport/batch/IncomingBatchConnection.java
@@ -18,7 +18,7 @@ import net.sf.briar.api.transport.BatchTransportReader;
 import net.sf.briar.api.transport.ConnectionReader;
 import net.sf.briar.api.transport.ConnectionReaderFactory;
 
-class IncomingBatchConnection implements Runnable {
+class IncomingBatchConnection {
 
 	private static final Logger LOG =
 		Logger.getLogger(IncomingBatchConnection.class.getName());
@@ -42,7 +42,7 @@ class IncomingBatchConnection implements Runnable {
 		this.encryptedIv = encryptedIv;
 	}
 
-	public void run() {
+	void read() {
 		try {
 			byte[] secret = db.getSharedSecret(contactId);
 			ConnectionReader conn = connFactory.createConnectionReader(
diff --git a/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java b/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java
index ad2a7e57e0..6057ac475a 100644
--- a/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java
+++ b/components/net/sf/briar/transport/batch/OutgoingBatchConnection.java
@@ -20,7 +20,7 @@ import net.sf.briar.api.transport.BatchTransportWriter;
 import net.sf.briar.api.transport.ConnectionWriter;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
 
-class OutgoingBatchConnection implements Runnable {
+class OutgoingBatchConnection {
 
 	private static final Logger LOG =
 		Logger.getLogger(OutgoingBatchConnection.class.getName());
@@ -44,7 +44,7 @@ class OutgoingBatchConnection implements Runnable {
 		this.writer = writer;
 	}
 
-	public void run() {
+	void write() {
 		try {
 			byte[] secret = db.getSharedSecret(contactId);
 			long connection = db.getConnectionNumber(contactId, transportId);
diff --git a/components/net/sf/briar/transport/batch/TransportBatchModule.java b/components/net/sf/briar/transport/batch/TransportBatchModule.java
index e6e7c06d4f..633b4a67e1 100644
--- a/components/net/sf/briar/transport/batch/TransportBatchModule.java
+++ b/components/net/sf/briar/transport/batch/TransportBatchModule.java
@@ -1,6 +1,6 @@
 package net.sf.briar.transport.batch;
 
-import net.sf.briar.api.transport.batch.BatchConnectionFactory;
+import net.sf.briar.api.transport.BatchConnectionFactory;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Singleton;
diff --git a/components/net/sf/briar/transport/stream/StreamConnection.java b/components/net/sf/briar/transport/stream/StreamConnection.java
index 652b44c0f1..b0a5325df0 100644
--- a/components/net/sf/briar/transport/stream/StreamConnection.java
+++ b/components/net/sf/briar/transport/stream/StreamConnection.java
@@ -94,7 +94,7 @@ abstract class StreamConnection implements DatabaseListener {
 		}
 	}
 
-	public void read() {
+	void read() {
 		try {
 			InputStream in = createConnectionReader().getInputStream();
 			ProtocolReader proto = protoReaderFactory.createProtocolReader(in);
@@ -160,7 +160,7 @@ abstract class StreamConnection implements DatabaseListener {
 		connection.dispose(true);
 	}
 
-	public void write() {
+	void write() {
 		try {
 			OutputStream out = createConnectionWriter().getOutputStream();
 			// Create the packet writers
diff --git a/components/net/sf/briar/transport/stream/StreamConnectionFactoryImpl.java b/components/net/sf/briar/transport/stream/StreamConnectionFactoryImpl.java
index 0bf511f85f..999d3ee45a 100644
--- a/components/net/sf/briar/transport/stream/StreamConnectionFactoryImpl.java
+++ b/components/net/sf/briar/transport/stream/StreamConnectionFactoryImpl.java
@@ -7,8 +7,8 @@ import net.sf.briar.api.protocol.ProtocolReaderFactory;
 import net.sf.briar.api.protocol.writers.ProtocolWriterFactory;
 import net.sf.briar.api.transport.ConnectionReaderFactory;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
+import net.sf.briar.api.transport.StreamConnectionFactory;
 import net.sf.briar.api.transport.StreamTransportConnection;
-import net.sf.briar.api.transport.stream.StreamConnectionFactory;
 
 import com.google.inject.Inject;
 
@@ -32,42 +32,42 @@ public class StreamConnectionFactoryImpl implements StreamConnectionFactory {
 		this.protoWriterFactory = protoWriterFactory;
 	}
 
-	public Runnable[] createIncomingConnection(ContactId c,
+	public void createIncomingConnection(ContactId c,
 			StreamTransportConnection s, byte[] encryptedIv) {
 		final StreamConnection conn = new IncomingStreamConnection(
 				connReaderFactory, connWriterFactory, db, protoReaderFactory,
 				protoWriterFactory, c, s, encryptedIv);
-		Runnable[] runnables = new Runnable[2];
-		runnables[0] = new Runnable() {
+		Runnable write = new Runnable() {
 			public void run() {
 				conn.write();
 			}
 		};
-		runnables[1] = new Runnable() {
+		new Thread(write).start();
+		Runnable read = new Runnable() {
 			public void run() {
 				conn.read();
 			}
 		};
-		return runnables;
+		new Thread(read).start();
 	}
 
-	public Runnable[] createOutgoingConnection(TransportId t, ContactId c,
+	public void createOutgoingConnection(TransportId t, ContactId c,
 			StreamTransportConnection s) {
 		final StreamConnection conn = new OutgoingStreamConnection(
 				connReaderFactory, connWriterFactory, db, protoReaderFactory,
 				protoWriterFactory, c, s, t);
-		Runnable[] runnables = new Runnable[2];
-		runnables[0] = new Runnable() {
+		Runnable write = new Runnable() {
 			public void run() {
 				conn.write();
 			}
 		};
-		runnables[1] = new Runnable() {
+		new Thread(write).start();
+		Runnable read = new Runnable() {
 			public void run() {
 				conn.read();
 			}
 		};
-		return runnables;
+		new Thread(read).start();
 	}
 
 }
diff --git a/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java b/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java
index 64caa91e74..a495686c99 100644
--- a/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java
+++ b/test/net/sf/briar/transport/batch/BatchConnectionReadWriteTest.java
@@ -109,7 +109,7 @@ public class BatchConnectionReadWriteTest extends TestCase {
 		OutgoingBatchConnection batchOut = new OutgoingBatchConnection(
 				connFactory, db, protoFactory, transportId, contactId, writer);
 		// Write whatever needs to be written
-		batchOut.run();
+		batchOut.write();
 		// Close Alice's database
 		db.close();
 		// Return the contents of the batch connection
@@ -147,7 +147,7 @@ public class BatchConnectionReadWriteTest extends TestCase {
 		// No messages should have been added yet
 		assertFalse(listener.messagesAdded);
 		// Read whatever needs to be read
-		batchIn.run();
+		batchIn.read();
 		// The private message from Alice should have been added
 		assertTrue(listener.messagesAdded);
 		// Close Bob's database
-- 
GitLab