mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-19 06:09:55 +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.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
@@ -44,7 +43,7 @@ public class PluginsModule extends AbstractModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
SimplexPluginConfig getSimplexPluginConfig(
|
SimplexPluginConfig getSimplexPluginConfig(
|
||||||
@PluginExecutor Executor pluginExecutor) {
|
@PluginExecutor ExecutorService pluginExecutor) {
|
||||||
final Collection<SimplexPluginFactory> factories =
|
final Collection<SimplexPluginFactory> factories =
|
||||||
new ArrayList<SimplexPluginFactory>();
|
new ArrayList<SimplexPluginFactory>();
|
||||||
if(!OsUtils.isAndroid()) {
|
if(!OsUtils.isAndroid()) {
|
||||||
@@ -61,7 +60,7 @@ public class PluginsModule extends AbstractModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
DuplexPluginConfig getDuplexPluginConfig(
|
DuplexPluginConfig getDuplexPluginConfig(
|
||||||
@PluginExecutor Executor pluginExecutor,
|
@PluginExecutor ExecutorService pluginExecutor,
|
||||||
AndroidExecutor androidExecutor, Context appContext,
|
AndroidExecutor androidExecutor, Context appContext,
|
||||||
ReliabilityLayerFactory reliabilityFactory,
|
ReliabilityLayerFactory reliabilityFactory,
|
||||||
ShutdownManager shutdownManager) {
|
ShutdownManager shutdownManager) {
|
||||||
|
|||||||
@@ -4,16 +4,20 @@ import java.util.concurrent.Executor;
|
|||||||
|
|
||||||
import net.sf.briar.api.clock.Clock;
|
import net.sf.briar.api.clock.Clock;
|
||||||
import net.sf.briar.api.clock.SystemClock;
|
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.ReliabilityLayer;
|
||||||
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
import net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||||
import net.sf.briar.api.reliability.WriteHandler;
|
import net.sf.briar.api.reliability.WriteHandler;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
|
class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
|
||||||
|
|
||||||
private final Executor executor;
|
private final Executor executor;
|
||||||
private final Clock clock;
|
private final Clock clock;
|
||||||
|
|
||||||
ReliabilityLayerFactoryImpl(Executor executor) {
|
@Inject
|
||||||
|
ReliabilityLayerFactoryImpl(@ReliabilityExecutor Executor executor) {
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
clock = new SystemClock();
|
clock = new SystemClock();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package net.sf.briar.reliability;
|
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 net.sf.briar.api.reliability.ReliabilityLayerFactory;
|
||||||
|
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
@@ -8,6 +12,10 @@ public class ReliabilityModule extends AbstractModule {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure() {
|
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(
|
bind(ReliabilityLayerFactory.class).to(
|
||||||
ReliabilityLayerFactoryImpl.class);
|
ReliabilityLayerFactoryImpl.class);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user