Use Guice rather than reflection to load plugins.

This allows different plugins to have different dependencies without
cluttering the plugin factory API.
This commit is contained in:
akwizgran
2012-12-15 01:16:48 +00:00
parent 8bc27528a6
commit f5628e5581
14 changed files with 209 additions and 158 deletions

View File

@@ -0,0 +1,8 @@
package net.sf.briar.api.plugins.duplex;
import java.util.Collection;
public interface DuplexPluginConfig {
Collection<DuplexPluginFactory> getFactories();
}

View File

@@ -1,17 +1,10 @@
package net.sf.briar.api.plugins.duplex;
import java.util.concurrent.Executor;
import net.sf.briar.api.android.AndroidExecutor;
import net.sf.briar.api.lifecycle.ShutdownManager;
import net.sf.briar.api.protocol.TransportId;
import android.content.Context;
public interface DuplexPluginFactory {
TransportId getId();
DuplexPlugin createPlugin(Executor pluginExecutor,
AndroidExecutor androidExecutor, Context appContext,
ShutdownManager shutdownManager, DuplexPluginCallback callback);
DuplexPlugin createPlugin(DuplexPluginCallback callback);
}

View File

@@ -0,0 +1,8 @@
package net.sf.briar.api.plugins.simplex;
import java.util.Collection;
public interface SimplexPluginConfig {
Collection<SimplexPluginFactory> getFactories();
}

View File

@@ -1,17 +1,10 @@
package net.sf.briar.api.plugins.simplex;
import java.util.concurrent.Executor;
import net.sf.briar.api.android.AndroidExecutor;
import net.sf.briar.api.lifecycle.ShutdownManager;
import net.sf.briar.api.protocol.TransportId;
import android.content.Context;
public interface SimplexPluginFactory {
TransportId getId();
SimplexPlugin createPlugin(Executor pluginExecutor,
AndroidExecutor androidExecutor, Context appContext,
ShutdownManager shutdownManager, SimplexPluginCallback callback);
SimplexPlugin createPlugin(SimplexPluginCallback callback);
}