start of a plugin starter

This commit is contained in:
zzz
2010-02-07 13:32:49 +00:00
parent 040f3e016e
commit 58adccfd4a
9 changed files with 268 additions and 36 deletions

View File

@@ -62,7 +62,7 @@ public class RouterContext extends I2PAppContext {
private Calculator _capacityCalc;
private static List _contexts = new ArrayList(1);
private static List<RouterContext> _contexts = new ArrayList(1);
public RouterContext(Router router) { this(router, null); }
public RouterContext(Router router, Properties envProps) {
@@ -148,7 +148,7 @@ public class RouterContext extends I2PAppContext {
* context is created or a router is shut down.
*
*/
public static List listContexts() { return _contexts; }
public static List<RouterContext> listContexts() { return _contexts; }
/** what router is this context working for? */
public Router router() { return _router; }

View File

@@ -4,6 +4,7 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
@@ -72,6 +73,26 @@ public class ClientAppConfig {
*/
public static List<ClientAppConfig> getClientApps(RouterContext ctx) {
Properties clientApps = getClientAppProps(ctx);
return getClientApps(clientApps);
}
/*
* Go through the properties, and return a List of ClientAppConfig structures
*/
public static List<ClientAppConfig> getClientApps(File cfgFile) {
Properties clientApps = new Properties();
try {
DataHelper.loadProps(clientApps, cfgFile);
} catch (IOException ioe) {
return Collections.EMPTY_LIST;
}
return getClientApps(clientApps);
}
/*
* Go through the properties, and return a List of ClientAppConfig structures
*/
private static List<ClientAppConfig> getClientApps(Properties clientApps) {
List<ClientAppConfig> rv = new ArrayList(8);
int i = 0;
while (true) {

View File

@@ -48,16 +48,20 @@ public class LoadClientAppsJob extends JobImpl {
}
}
}
private class DelayedRunClient extends JobImpl {
public static class DelayedRunClient extends JobImpl {
private String _className;
private String _clientName;
private String _args[];
private Log _log;
public DelayedRunClient(RouterContext enclosingContext, String className, String clientName, String args[], long delay) {
super(enclosingContext);
_className = className;
_clientName = clientName;
_args = args;
getTiming().setStartAfter(LoadClientAppsJob.this.getContext().clock().now() + delay);
_log = enclosingContext.logManager().getLog(LoadClientAppsJob.class);
getTiming().setStartAfter(getContext().clock().now() + delay);
}
public String getName() { return "Delayed client job"; }
public void runJob() {