I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 9c96c07f authored by zzz's avatar zzz
Browse files

merge of 'bbaea7567520aced60f19b571f63c11cbb3b1d76'

     and 'e7bbb1ca66df6fb49b2f1fcb554e8077dd488fb2'
parents 9053a86e 5f3834d3
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,7 @@ ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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;
//
} }
/** /**
......
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 { ...@@ -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 = "";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment