Fixed injection problems with plugin and reliability modules.

This commit is contained in:
akwizgran
2013-02-12 14:18:43 +00:00
parent 78d6100262
commit e0f6948bc4
4 changed files with 30 additions and 4 deletions

View File

@@ -0,0 +1,15 @@
package net.sf.briar.api.reliability;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import com.google.inject.BindingAnnotation;
/** Annotation for injecting the executor used by reliability layers. */
@BindingAnnotation
@Target({ PARAMETER })
@Retention(RUNTIME)
public @interface ReliabilityExecutor {}

View File

@@ -2,7 +2,6 @@ package net.sf.briar.plugins;
import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -44,7 +43,7 @@ public class PluginsModule extends AbstractModule {
@Provides
SimplexPluginConfig getSimplexPluginConfig(
@PluginExecutor Executor pluginExecutor) {
@PluginExecutor ExecutorService pluginExecutor) {
final Collection<SimplexPluginFactory> factories =
new ArrayList<SimplexPluginFactory>();
if(!OsUtils.isAndroid()) {
@@ -61,7 +60,7 @@ public class PluginsModule extends AbstractModule {
@Provides
DuplexPluginConfig getDuplexPluginConfig(
@PluginExecutor Executor pluginExecutor,
@PluginExecutor ExecutorService pluginExecutor,
AndroidExecutor androidExecutor, Context appContext,
ReliabilityLayerFactory reliabilityFactory,
ShutdownManager shutdownManager) {

View File

@@ -4,16 +4,20 @@ import java.util.concurrent.Executor;
import net.sf.briar.api.clock.Clock;
import net.sf.briar.api.clock.SystemClock;
import net.sf.briar.api.reliability.ReliabilityExecutor;
import net.sf.briar.api.reliability.ReliabilityLayer;
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
import net.sf.briar.api.reliability.WriteHandler;
import com.google.inject.Inject;
class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
private final Executor executor;
private final Clock clock;
ReliabilityLayerFactoryImpl(Executor executor) {
@Inject
ReliabilityLayerFactoryImpl(@ReliabilityExecutor Executor executor) {
this.executor = executor;
clock = new SystemClock();
}

View File

@@ -1,5 +1,9 @@
package net.sf.briar.reliability;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import net.sf.briar.api.reliability.ReliabilityExecutor;
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
import com.google.inject.AbstractModule;
@@ -8,6 +12,10 @@ public class ReliabilityModule extends AbstractModule {
@Override
protected void configure() {
// The executor is unbounded - tasks are expected to be long-lived
bind(Executor.class).annotatedWith(
ReliabilityExecutor.class).toInstance(
Executors.newCachedThreadPool());
bind(ReliabilityLayerFactory.class).to(
ReliabilityLayerFactoryImpl.class);
}