From d3b742e14c543d9bbfe3f75b1029ad70612b22fb Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Tue, 12 Mar 2013 16:19:36 +0000 Subject: [PATCH] Renamed VerificationExecutor, as it may be used for any crypto task. --- .../CryptoExecutor.java} | 6 ++--- .../src/net/sf/briar/crypto/CryptoModule.java | 23 ++++++++++++++++++ .../sf/briar/messaging/MessagingModule.java | 24 ------------------- .../messaging/duplex/DuplexConnection.java | 6 ++--- .../duplex/DuplexConnectionFactoryImpl.java | 4 ++-- .../duplex/IncomingDuplexConnection.java | 4 ++-- .../duplex/OutgoingDuplexConnection.java | 4 ++-- .../simplex/IncomingSimplexConnection.java | 4 ++-- .../simplex/SimplexConnectionFactoryImpl.java | 4 ++-- 9 files changed, 39 insertions(+), 40 deletions(-) rename briar-api/src/net/sf/briar/api/{messaging/VerificationExecutor.java => crypto/CryptoExecutor.java} (66%) diff --git a/briar-api/src/net/sf/briar/api/messaging/VerificationExecutor.java b/briar-api/src/net/sf/briar/api/crypto/CryptoExecutor.java similarity index 66% rename from briar-api/src/net/sf/briar/api/messaging/VerificationExecutor.java rename to briar-api/src/net/sf/briar/api/crypto/CryptoExecutor.java index 18e7da9661..346ed89387 100644 --- a/briar-api/src/net/sf/briar/api/messaging/VerificationExecutor.java +++ b/briar-api/src/net/sf/briar/api/crypto/CryptoExecutor.java @@ -1,4 +1,4 @@ -package net.sf.briar.api.messaging; +package net.sf.briar.api.crypto; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.RetentionPolicy.RUNTIME; @@ -8,8 +8,8 @@ import java.lang.annotation.Target; import com.google.inject.BindingAnnotation; -/** Annotation for injecting the executor for message verification tasks. */ +/** Annotation for injecting the executor for long-running crypto tasks. */ @BindingAnnotation @Target({ PARAMETER }) @Retention(RUNTIME) -public @interface VerificationExecutor {} +public @interface CryptoExecutor {} diff --git a/briar-core/src/net/sf/briar/crypto/CryptoModule.java b/briar-core/src/net/sf/briar/crypto/CryptoModule.java index 517111b601..d006d07c8c 100644 --- a/briar-core/src/net/sf/briar/crypto/CryptoModule.java +++ b/briar-core/src/net/sf/briar/crypto/CryptoModule.java @@ -1,15 +1,38 @@ package net.sf.briar.crypto; +import java.util.concurrent.Executor; + import net.sf.briar.api.crypto.CryptoComponent; +import net.sf.briar.api.crypto.CryptoExecutor; +import net.sf.briar.util.BoundedExecutor; import com.google.inject.AbstractModule; import com.google.inject.Singleton; public class CryptoModule extends AbstractModule { + // FIXME: Determine suitable values for these constants empirically + + /** + * The maximum number of tasks that can be queued for execution before + * submitting another task will block. + */ + private static final int MAX_QUEUED_EXECUTOR_TASKS = 10; + + /** The minimum number of executor threads to keep in the pool. */ + private static final int MIN_EXECUTOR_THREADS = 1; + + /** The maximum number of executor threads. */ + private static final int MAX_EXECUTOR_THREADS = + Runtime.getRuntime().availableProcessors(); + @Override protected void configure() { bind(CryptoComponent.class).to( CryptoComponentImpl.class).in(Singleton.class); + // The executor is bounded, so tasks must be independent and short-lived + bind(Executor.class).annotatedWith(CryptoExecutor.class).toInstance( + new BoundedExecutor(MAX_QUEUED_EXECUTOR_TASKS, + MIN_EXECUTOR_THREADS, MAX_EXECUTOR_THREADS)); } } diff --git a/briar-core/src/net/sf/briar/messaging/MessagingModule.java b/briar-core/src/net/sf/briar/messaging/MessagingModule.java index 573a3f32b3..c98dd04675 100644 --- a/briar-core/src/net/sf/briar/messaging/MessagingModule.java +++ b/briar-core/src/net/sf/briar/messaging/MessagingModule.java @@ -1,7 +1,5 @@ package net.sf.briar.messaging; -import java.util.concurrent.Executor; - import net.sf.briar.api.crypto.CryptoComponent; import net.sf.briar.api.messaging.Author; import net.sf.briar.api.messaging.AuthorFactory; @@ -13,30 +11,13 @@ import net.sf.briar.api.messaging.PacketReaderFactory; import net.sf.briar.api.messaging.PacketWriterFactory; import net.sf.briar.api.messaging.SubscriptionUpdate; import net.sf.briar.api.messaging.UnverifiedMessage; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.serial.StructReader; -import net.sf.briar.util.BoundedExecutor; import com.google.inject.AbstractModule; import com.google.inject.Provides; public class MessagingModule extends AbstractModule { - // FIXME: Determine suitable values for these constants empirically - - /** - * The maximum number of verification tasks that can be queued for - * execution before submitting another task will block. - */ - private static final int MAX_QUEUED_VERIFIER_TASKS = 10; - - /** The minimum number of verification threads to keep in the pool. */ - private static final int MIN_VERIFIER_THREADS = 1; - - /** The maximum number of verification threads. */ - private static final int MAX_VERIFIER_THREADS = - Runtime.getRuntime().availableProcessors(); - @Override protected void configure() { bind(AuthorFactory.class).to(AuthorFactoryImpl.class); @@ -45,11 +26,6 @@ public class MessagingModule extends AbstractModule { bind(MessageVerifier.class).to(MessageVerifierImpl.class); bind(PacketReaderFactory.class).to(PacketReaderFactoryImpl.class); bind(PacketWriterFactory.class).to(PacketWriterFactoryImpl.class); - // The executor is bounded, so tasks must be independent and short-lived - bind(Executor.class).annotatedWith( - VerificationExecutor.class).toInstance( - new BoundedExecutor(MAX_QUEUED_VERIFIER_TASKS, - MIN_VERIFIER_THREADS, MAX_VERIFIER_THREADS)); } @Provides diff --git a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java index 310c4d304c..9b56a720bf 100644 --- a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java +++ b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnection.java @@ -23,16 +23,17 @@ import java.util.logging.Logger; import net.sf.briar.api.ContactId; import net.sf.briar.api.FormatException; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; import net.sf.briar.api.db.DbException; import net.sf.briar.api.db.event.ContactRemovedEvent; import net.sf.briar.api.db.event.DatabaseEvent; import net.sf.briar.api.db.event.DatabaseListener; -import net.sf.briar.api.db.event.MessageExpiredEvent; import net.sf.briar.api.db.event.LocalSubscriptionsUpdatedEvent; import net.sf.briar.api.db.event.LocalTransportsUpdatedEvent; import net.sf.briar.api.db.event.MessageAddedEvent; +import net.sf.briar.api.db.event.MessageExpiredEvent; import net.sf.briar.api.db.event.MessageReceivedEvent; import net.sf.briar.api.db.event.RatingChangedEvent; import net.sf.briar.api.db.event.RemoteRetentionTimeUpdatedEvent; @@ -56,7 +57,6 @@ import net.sf.briar.api.messaging.TransportAck; import net.sf.briar.api.messaging.TransportId; import net.sf.briar.api.messaging.TransportUpdate; import net.sf.briar.api.messaging.UnverifiedMessage; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.plugins.duplex.DuplexTransportConnection; import net.sf.briar.api.transport.ConnectionContext; import net.sf.briar.api.transport.ConnectionReader; @@ -97,7 +97,7 @@ abstract class DuplexConnection implements DatabaseListener { private volatile PacketWriter writer = null; DuplexConnection(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, diff --git a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java index b23476890a..2c98cbf690 100644 --- a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java +++ b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java @@ -6,6 +6,7 @@ import java.util.concurrent.Executor; import java.util.logging.Logger; import net.sf.briar.api.ContactId; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.crypto.KeyManager; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; @@ -13,7 +14,6 @@ import net.sf.briar.api.messaging.MessageVerifier; import net.sf.briar.api.messaging.PacketReaderFactory; import net.sf.briar.api.messaging.PacketWriterFactory; import net.sf.briar.api.messaging.TransportId; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.messaging.duplex.DuplexConnectionFactory; import net.sf.briar.api.plugins.duplex.DuplexTransportConnection; import net.sf.briar.api.transport.ConnectionContext; @@ -40,7 +40,7 @@ class DuplexConnectionFactoryImpl implements DuplexConnectionFactory { @Inject DuplexConnectionFactoryImpl(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, KeyManager keyManager, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, diff --git a/briar-core/src/net/sf/briar/messaging/duplex/IncomingDuplexConnection.java b/briar-core/src/net/sf/briar/messaging/duplex/IncomingDuplexConnection.java index 64314943b3..08e955af9b 100644 --- a/briar-core/src/net/sf/briar/messaging/duplex/IncomingDuplexConnection.java +++ b/briar-core/src/net/sf/briar/messaging/duplex/IncomingDuplexConnection.java @@ -3,12 +3,12 @@ package net.sf.briar.messaging.duplex; import java.io.IOException; import java.util.concurrent.Executor; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; import net.sf.briar.api.messaging.MessageVerifier; import net.sf.briar.api.messaging.PacketReaderFactory; import net.sf.briar.api.messaging.PacketWriterFactory; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.plugins.duplex.DuplexTransportConnection; import net.sf.briar.api.transport.ConnectionContext; import net.sf.briar.api.transport.ConnectionReader; @@ -20,7 +20,7 @@ import net.sf.briar.api.transport.ConnectionWriterFactory; class IncomingDuplexConnection extends DuplexConnection { IncomingDuplexConnection(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, diff --git a/briar-core/src/net/sf/briar/messaging/duplex/OutgoingDuplexConnection.java b/briar-core/src/net/sf/briar/messaging/duplex/OutgoingDuplexConnection.java index dd24410e6f..2a852a45c1 100644 --- a/briar-core/src/net/sf/briar/messaging/duplex/OutgoingDuplexConnection.java +++ b/briar-core/src/net/sf/briar/messaging/duplex/OutgoingDuplexConnection.java @@ -3,12 +3,12 @@ package net.sf.briar.messaging.duplex; import java.io.IOException; import java.util.concurrent.Executor; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; import net.sf.briar.api.messaging.MessageVerifier; import net.sf.briar.api.messaging.PacketReaderFactory; import net.sf.briar.api.messaging.PacketWriterFactory; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.plugins.duplex.DuplexTransportConnection; import net.sf.briar.api.transport.ConnectionContext; import net.sf.briar.api.transport.ConnectionReader; @@ -20,7 +20,7 @@ import net.sf.briar.api.transport.ConnectionWriterFactory; class OutgoingDuplexConnection extends DuplexConnection { OutgoingDuplexConnection(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, diff --git a/briar-core/src/net/sf/briar/messaging/simplex/IncomingSimplexConnection.java b/briar-core/src/net/sf/briar/messaging/simplex/IncomingSimplexConnection.java index 9339616c36..bac3930cab 100644 --- a/briar-core/src/net/sf/briar/messaging/simplex/IncomingSimplexConnection.java +++ b/briar-core/src/net/sf/briar/messaging/simplex/IncomingSimplexConnection.java @@ -10,6 +10,7 @@ import java.util.logging.Logger; import net.sf.briar.api.ContactId; import net.sf.briar.api.FormatException; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; import net.sf.briar.api.db.DbException; @@ -26,7 +27,6 @@ import net.sf.briar.api.messaging.TransportAck; import net.sf.briar.api.messaging.TransportId; import net.sf.briar.api.messaging.TransportUpdate; import net.sf.briar.api.messaging.UnverifiedMessage; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.plugins.simplex.SimplexTransportReader; import net.sf.briar.api.transport.ConnectionContext; import net.sf.briar.api.transport.ConnectionReader; @@ -51,7 +51,7 @@ class IncomingSimplexConnection { private final TransportId transportId; IncomingSimplexConnection(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, diff --git a/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java index 7a3f1c3372..5764c512b3 100644 --- a/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java +++ b/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java @@ -6,6 +6,7 @@ import java.util.concurrent.Executor; import java.util.logging.Logger; import net.sf.briar.api.ContactId; +import net.sf.briar.api.crypto.CryptoExecutor; import net.sf.briar.api.crypto.KeyManager; import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DatabaseExecutor; @@ -13,7 +14,6 @@ import net.sf.briar.api.messaging.MessageVerifier; import net.sf.briar.api.messaging.PacketReaderFactory; import net.sf.briar.api.messaging.PacketWriterFactory; import net.sf.briar.api.messaging.TransportId; -import net.sf.briar.api.messaging.VerificationExecutor; import net.sf.briar.api.messaging.simplex.SimplexConnectionFactory; import net.sf.briar.api.plugins.simplex.SimplexTransportReader; import net.sf.briar.api.plugins.simplex.SimplexTransportWriter; @@ -41,7 +41,7 @@ class SimplexConnectionFactoryImpl implements SimplexConnectionFactory { @Inject SimplexConnectionFactoryImpl(@DatabaseExecutor Executor dbExecutor, - @VerificationExecutor Executor verificationExecutor, + @CryptoExecutor Executor verificationExecutor, MessageVerifier messageVerifier, DatabaseComponent db, KeyManager keyManager, ConnectionRegistry connRegistry, ConnectionReaderFactory connReaderFactory, -- GitLab