diff --git a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactory.java b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactory.java deleted file mode 100644 index 31fb33457..000000000 --- a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.briarproject.bramble.connection; - -import org.briarproject.bramble.api.connection.ConnectionManager; -import org.briarproject.bramble.api.contact.ContactId; -import org.briarproject.bramble.api.contact.PendingContactId; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.bramble.api.plugin.TransportConnectionReader; -import org.briarproject.bramble.api.plugin.TransportConnectionWriter; -import org.briarproject.bramble.api.plugin.TransportId; -import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection; - -@NotNullByDefault -interface ConnectionFactory { - - Runnable createIncomingSimplexSyncConnection(TransportId t, - TransportConnectionReader r); - - Runnable createIncomingDuplexSyncConnection(TransportId t, - DuplexTransportConnection d); - - Runnable createIncomingHandshakeConnection( - ConnectionManager connectionManager, PendingContactId p, - TransportId t, DuplexTransportConnection d); - - Runnable createOutgoingSimplexSyncConnection(ContactId c, TransportId t, - TransportConnectionWriter w); - - Runnable createOutgoingDuplexSyncConnection(ContactId c, TransportId t, - DuplexTransportConnection d); - - Runnable createOutgoingHandshakeConnection( - ConnectionManager connectionManager, - PendingContactId p, TransportId t, DuplexTransportConnection d); -} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactoryImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactoryImpl.java deleted file mode 100644 index 197a0d813..000000000 --- a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionFactoryImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.briarproject.bramble.connection; - -import org.briarproject.bramble.api.connection.ConnectionManager; -import org.briarproject.bramble.api.connection.ConnectionRegistry; -import org.briarproject.bramble.api.contact.ContactExchangeManager; -import org.briarproject.bramble.api.contact.ContactId; -import org.briarproject.bramble.api.contact.HandshakeManager; -import org.briarproject.bramble.api.contact.PendingContactId; -import org.briarproject.bramble.api.lifecycle.IoExecutor; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.bramble.api.plugin.TransportConnectionReader; -import org.briarproject.bramble.api.plugin.TransportConnectionWriter; -import org.briarproject.bramble.api.plugin.TransportId; -import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection; -import org.briarproject.bramble.api.properties.TransportPropertyManager; -import org.briarproject.bramble.api.sync.SyncSessionFactory; -import org.briarproject.bramble.api.transport.KeyManager; -import org.briarproject.bramble.api.transport.StreamReaderFactory; -import org.briarproject.bramble.api.transport.StreamWriterFactory; - -import java.util.concurrent.Executor; - -import javax.annotation.concurrent.Immutable; -import javax.inject.Inject; - -@Immutable -@NotNullByDefault -class ConnectionFactoryImpl implements ConnectionFactory { - - private final Executor ioExecutor; - private final KeyManager keyManager; - private final StreamReaderFactory streamReaderFactory; - private final StreamWriterFactory streamWriterFactory; - private final SyncSessionFactory syncSessionFactory; - private final HandshakeManager handshakeManager; - private final ContactExchangeManager contactExchangeManager; - private final ConnectionRegistry connectionRegistry; - private final TransportPropertyManager transportPropertyManager; - - @Inject - ConnectionFactoryImpl(@IoExecutor Executor ioExecutor, - KeyManager keyManager, StreamReaderFactory streamReaderFactory, - StreamWriterFactory streamWriterFactory, - SyncSessionFactory syncSessionFactory, - HandshakeManager handshakeManager, - ContactExchangeManager contactExchangeManager, - ConnectionRegistry connectionRegistry, - TransportPropertyManager transportPropertyManager) { - this.ioExecutor = ioExecutor; - this.keyManager = keyManager; - this.streamReaderFactory = streamReaderFactory; - this.streamWriterFactory = streamWriterFactory; - this.syncSessionFactory = syncSessionFactory; - this.handshakeManager = handshakeManager; - this.contactExchangeManager = contactExchangeManager; - this.connectionRegistry = connectionRegistry; - this.transportPropertyManager = transportPropertyManager; - } - - @Override - public Runnable createIncomingSimplexSyncConnection(TransportId t, - TransportConnectionReader r) { - return new IncomingSimplexSyncConnection(keyManager, - connectionRegistry, streamReaderFactory, streamWriterFactory, - syncSessionFactory, transportPropertyManager, t, r); - } - - @Override - public Runnable createIncomingDuplexSyncConnection(TransportId t, - DuplexTransportConnection d) { - return new IncomingDuplexSyncConnection(keyManager, connectionRegistry, - streamReaderFactory, streamWriterFactory, syncSessionFactory, - transportPropertyManager, ioExecutor, t, d); - } - - @Override - public Runnable createIncomingHandshakeConnection( - ConnectionManager connectionManager, PendingContactId p, - TransportId t, DuplexTransportConnection d) { - return new IncomingHandshakeConnection(keyManager, connectionRegistry, - streamReaderFactory, streamWriterFactory, handshakeManager, - contactExchangeManager, connectionManager, p, t, d); - } - - @Override - public Runnable createOutgoingSimplexSyncConnection(ContactId c, - TransportId t, TransportConnectionWriter w) { - return new OutgoingSimplexSyncConnection(keyManager, - connectionRegistry, streamReaderFactory, streamWriterFactory, - syncSessionFactory, transportPropertyManager, c, t, w); - } - - @Override - public Runnable createOutgoingDuplexSyncConnection(ContactId c, - TransportId t, DuplexTransportConnection d) { - return new OutgoingDuplexSyncConnection(keyManager, connectionRegistry, - streamReaderFactory, streamWriterFactory, syncSessionFactory, - transportPropertyManager, ioExecutor, c, t, d); - } - - @Override - public Runnable createOutgoingHandshakeConnection( - ConnectionManager connectionManager, PendingContactId p, - TransportId t, DuplexTransportConnection d) { - return new OutgoingHandshakeConnection(keyManager, connectionRegistry, - streamReaderFactory, streamWriterFactory, handshakeManager, - contactExchangeManager, connectionManager, p, t, d); - } -} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionManagerImpl.java index 463eca197..7df9b1074 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionManagerImpl.java @@ -1,7 +1,10 @@ package org.briarproject.bramble.connection; import org.briarproject.bramble.api.connection.ConnectionManager; +import org.briarproject.bramble.api.connection.ConnectionRegistry; +import org.briarproject.bramble.api.contact.ContactExchangeManager; import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.contact.HandshakeManager; import org.briarproject.bramble.api.contact.PendingContactId; import org.briarproject.bramble.api.lifecycle.IoExecutor; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; @@ -9,63 +12,99 @@ import org.briarproject.bramble.api.plugin.TransportConnectionReader; import org.briarproject.bramble.api.plugin.TransportConnectionWriter; import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection; +import org.briarproject.bramble.api.properties.TransportPropertyManager; +import org.briarproject.bramble.api.sync.SyncSessionFactory; +import org.briarproject.bramble.api.transport.KeyManager; +import org.briarproject.bramble.api.transport.StreamReaderFactory; +import org.briarproject.bramble.api.transport.StreamWriterFactory; import java.util.concurrent.Executor; +import javax.annotation.concurrent.Immutable; import javax.inject.Inject; +@Immutable @NotNullByDefault class ConnectionManagerImpl implements ConnectionManager { private final Executor ioExecutor; - private final ConnectionFactory connectionFactory; + private final KeyManager keyManager; + private final StreamReaderFactory streamReaderFactory; + private final StreamWriterFactory streamWriterFactory; + private final SyncSessionFactory syncSessionFactory; + private final HandshakeManager handshakeManager; + private final ContactExchangeManager contactExchangeManager; + private final ConnectionRegistry connectionRegistry; + private final TransportPropertyManager transportPropertyManager; @Inject ConnectionManagerImpl(@IoExecutor Executor ioExecutor, - ConnectionFactory connectionFactory) { + KeyManager keyManager, StreamReaderFactory streamReaderFactory, + StreamWriterFactory streamWriterFactory, + SyncSessionFactory syncSessionFactory, + HandshakeManager handshakeManager, + ContactExchangeManager contactExchangeManager, + ConnectionRegistry connectionRegistry, + TransportPropertyManager transportPropertyManager) { this.ioExecutor = ioExecutor; - this.connectionFactory = connectionFactory; + this.keyManager = keyManager; + this.streamReaderFactory = streamReaderFactory; + this.streamWriterFactory = streamWriterFactory; + this.syncSessionFactory = syncSessionFactory; + this.handshakeManager = handshakeManager; + this.contactExchangeManager = contactExchangeManager; + this.connectionRegistry = connectionRegistry; + this.transportPropertyManager = transportPropertyManager; } + @Override public void manageIncomingConnection(TransportId t, TransportConnectionReader r) { - ioExecutor.execute( - connectionFactory.createIncomingSimplexSyncConnection(t, r)); + ioExecutor.execute(new IncomingSimplexSyncConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + syncSessionFactory, transportPropertyManager, t, r)); } @Override public void manageIncomingConnection(TransportId t, DuplexTransportConnection d) { - ioExecutor.execute( - connectionFactory.createIncomingDuplexSyncConnection(t, d)); + ioExecutor.execute(new IncomingDuplexSyncConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + syncSessionFactory, transportPropertyManager, ioExecutor, + t, d)); } @Override public void manageIncomingConnection(PendingContactId p, TransportId t, DuplexTransportConnection d) { - ioExecutor.execute(connectionFactory - .createIncomingHandshakeConnection(this, p, t, d)); + ioExecutor.execute(new IncomingHandshakeConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + handshakeManager, contactExchangeManager, this, p, t, d)); } @Override public void manageOutgoingConnection(ContactId c, TransportId t, TransportConnectionWriter w) { - ioExecutor.execute( - connectionFactory.createOutgoingSimplexSyncConnection(c, t, w)); + ioExecutor.execute(new OutgoingSimplexSyncConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + syncSessionFactory, transportPropertyManager, c, t, w)); } @Override public void manageOutgoingConnection(ContactId c, TransportId t, DuplexTransportConnection d) { - ioExecutor.execute( - connectionFactory.createOutgoingDuplexSyncConnection(c, t, d)); + ioExecutor.execute(new OutgoingDuplexSyncConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + syncSessionFactory, transportPropertyManager, ioExecutor, + c, t, d)); } @Override public void manageOutgoingConnection(PendingContactId p, TransportId t, DuplexTransportConnection d) { - ioExecutor.execute(connectionFactory - .createOutgoingHandshakeConnection(this, p, t, d)); + ioExecutor.execute(new OutgoingHandshakeConnection(keyManager, + connectionRegistry, streamReaderFactory, streamWriterFactory, + handshakeManager, contactExchangeManager, this, p, t, d)); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionModule.java b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionModule.java index 70d7f9471..e6b8fee3a 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/connection/ConnectionModule.java @@ -12,18 +12,11 @@ import dagger.Provides; public class ConnectionModule { @Provides - @Singleton ConnectionManager provideConnectionManager( ConnectionManagerImpl connectionManager) { return connectionManager; } - @Provides - ConnectionFactory provideConnectionFactory( - ConnectionFactoryImpl connectionFactory) { - return connectionFactory; - } - @Provides @Singleton ConnectionRegistry provideConnectionRegistry(