merge of 'bbaea7567520aced60f19b571f63c11cbb3b1d76'
and 'e7bbb1ca66df6fb49b2f1fcb554e8077dd488fb2'
This commit is contained in:
@ -4,7 +4,7 @@
|
|||||||
i2p_start() {
|
i2p_start() {
|
||||||
# Check if router is up first!
|
# Check if router is up first!
|
||||||
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory status )" > /dev/null
|
/bin/su - -c "( export PATH=\"$PATH:/usr/lib/java/bin:/usr/lib/java/jre/bin\"; directory status )" > /dev/null
|
||||||
if [ ! $? -eq 0 ] ; then {
|
if [ $? -eq 0 ] ; then {
|
||||||
# I2p is already running, so tell the user.
|
# I2p is already running, so tell the user.
|
||||||
echo "I2P is already running..."
|
echo "I2P is already running..."
|
||||||
i2p_status
|
i2p_status
|
||||||
|
@ -50,6 +50,7 @@ public class PluginStarter implements Runnable {
|
|||||||
private static Map<String, ThreadGroup> pluginThreadGroups = new ConcurrentHashMap<String, ThreadGroup>(); // one thread group per plugin (map key=plugin name)
|
private static Map<String, ThreadGroup> pluginThreadGroups = new ConcurrentHashMap<String, ThreadGroup>(); // one thread group per plugin (map key=plugin name)
|
||||||
private static Map<String, Collection<Job>> pluginJobs = new ConcurrentHashMap<String, Collection<Job>>();
|
private static Map<String, Collection<Job>> pluginJobs = new ConcurrentHashMap<String, Collection<Job>>();
|
||||||
private static Map<String, ClassLoader> _clCache = new ConcurrentHashMap();
|
private static Map<String, ClassLoader> _clCache = new ConcurrentHashMap();
|
||||||
|
private static Map<String, Collection<String>> pluginWars = new ConcurrentHashMap<String, Collection<String>>();
|
||||||
|
|
||||||
public PluginStarter(RouterContext ctx) {
|
public PluginStarter(RouterContext ctx) {
|
||||||
_context = ctx;
|
_context = ctx;
|
||||||
@ -125,6 +126,8 @@ public class PluginStarter implements Runnable {
|
|||||||
File webappDir = new File(consoleDir, "webapps");
|
File webappDir = new File(consoleDir, "webapps");
|
||||||
String fileNames[] = webappDir.list(RouterConsoleRunner.WarFilenameFilter.instance());
|
String fileNames[] = webappDir.list(RouterConsoleRunner.WarFilenameFilter.instance());
|
||||||
if (fileNames != null) {
|
if (fileNames != null) {
|
||||||
|
if(!pluginWars.containsKey(appName))
|
||||||
|
pluginWars.put(appName, new ConcurrentHashSet<String>());
|
||||||
for (int i = 0; i < fileNames.length; i++) {
|
for (int i = 0; i < fileNames.length; i++) {
|
||||||
try {
|
try {
|
||||||
String warName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
|
String warName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
|
||||||
@ -139,6 +142,7 @@ public class PluginStarter implements Runnable {
|
|||||||
//log.error("Starting webapp: " + warName);
|
//log.error("Starting webapp: " + warName);
|
||||||
String path = new File(webappDir, fileNames[i]).getCanonicalPath();
|
String path = new File(webappDir, fileNames[i]).getCanonicalPath();
|
||||||
WebAppStarter.startWebApp(ctx, server, warName, path);
|
WebAppStarter.startWebApp(ctx, server, warName, path);
|
||||||
|
pluginWars.get(appName).add(warName);
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
log.error("Error resolving '" + fileNames[i] + "' in '" + webappDir, ioe);
|
log.error("Error resolving '" + fileNames[i] + "' in '" + webappDir, ioe);
|
||||||
@ -215,6 +219,7 @@ public class PluginStarter implements Runnable {
|
|||||||
// stop console webapps in console/webapps
|
// stop console webapps in console/webapps
|
||||||
Server server = WebAppStarter.getConsoleServer();
|
Server server = WebAppStarter.getConsoleServer();
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
|
/*
|
||||||
File consoleDir = new File(pluginDir, "console");
|
File consoleDir = new File(pluginDir, "console");
|
||||||
Properties props = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
|
Properties props = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
|
||||||
File webappDir = new File(consoleDir, "webapps");
|
File webappDir = new File(consoleDir, "webapps");
|
||||||
@ -228,6 +233,13 @@ public class PluginStarter implements Runnable {
|
|||||||
WebAppStarter.stopWebApp(server, warName);
|
WebAppStarter.stopWebApp(server, warName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
Iterator <String> wars = pluginWars.get(appName).iterator();
|
||||||
|
while (wars.hasNext()) {
|
||||||
|
String warName = wars.next();
|
||||||
|
WebAppStarter.stopWebApp(server, warName);
|
||||||
|
}
|
||||||
|
pluginWars.get(appName).clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove summary bar link
|
// remove summary bar link
|
||||||
@ -487,10 +499,25 @@ public class PluginStarter implements Runnable {
|
|||||||
isJobRunning = true;
|
isJobRunning = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
boolean isWarRunning = false;
|
||||||
|
if(pluginWars.containsKey(pluginName)) {
|
||||||
|
Iterator <String> it = pluginWars.get(pluginName).iterator();
|
||||||
|
while(it.hasNext() && !isWarRunning) {
|
||||||
|
String warName = it.next();
|
||||||
|
if(WebAppStarter.isWebAppRunning(warName)) {
|
||||||
|
isWarRunning = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (log.shouldLog(Log.DEBUG))
|
if (log.shouldLog(Log.DEBUG))
|
||||||
log.debug("plugin name = <" + pluginName + ">; threads running? " + isClientThreadRunning(pluginName) + "; webapp runing? " + WebAppStarter.isWebAppRunning(pluginName) + "; jobs running? " + isJobRunning);
|
log.debug("plugin name = <" + pluginName + ">; threads running? " + isClientThreadRunning(pluginName) + "; webapp runing? " + isWarRunning + "; jobs running? " + isJobRunning);
|
||||||
return isClientThreadRunning(pluginName) || WebAppStarter.isWebAppRunning(pluginName) || isJobRunning;
|
return isClientThreadRunning(pluginName) || isWarRunning || isJobRunning;
|
||||||
|
//
|
||||||
|
//if (log.shouldLog(Log.DEBUG))
|
||||||
|
// log.debug("plugin name = <" + pluginName + ">; threads running? " + isClientThreadRunning(pluginName) + "; webapp runing? " + WebAppStarter.isWebAppRunning(pluginName) + "; jobs running? " + isJobRunning);
|
||||||
|
//return isClientThreadRunning(pluginName) || WebAppStarter.isWebAppRunning(pluginName) || isJobRunning;
|
||||||
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2010-11-24 sponge
|
||||||
|
* Slackware, fix rc.i2p, bad logic.
|
||||||
|
|
||||||
|
2010-11-24 sponge
|
||||||
|
* Plugin: ticket 104 Fix webapp isRunning to check ALL webapps.
|
||||||
|
The only defecency is that if one is running, that it considers the
|
||||||
|
entire pliugin to be running. I'm not sure if that is a good thing
|
||||||
|
or a bad thing, but the other code checks threads that way.
|
||||||
|
|
||||||
2010-11-22 zzz
|
2010-11-22 zzz
|
||||||
* Addressbook: Fix rename error on Windows (tkt 323 - thanks RN!)
|
* Addressbook: Fix rename error on Windows (tkt 323 - thanks RN!)
|
||||||
* build.xml: Cleanup, fix distclean error in older ants.
|
* build.xml: Cleanup, fix distclean error in older ants.
|
||||||
|
@ -18,7 +18,7 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 4;
|
public final static long BUILD = 5;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "";
|
public final static String EXTRA = "";
|
||||||
|
Reference in New Issue
Block a user