mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Fixed injection problems with plugin and reliability modules.
This commit is contained in:
@@ -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 {}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user