* Mount static directory at /app/static by default.
* Start applications in start() rather than in register()/bind() so we can rebind applications without restarting them.
This commit is contained in:
parent
143abce688
commit
e2bff453f6
1 changed files with 12 additions and 9 deletions
|
@ -231,6 +231,14 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
return mountpoint;
|
return mountpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String joinMountpoint(String prefix, String suffix) {
|
||||||
|
if (prefix.endsWith("/") || suffix.startsWith("/")) {
|
||||||
|
return prefix+suffix;
|
||||||
|
} else {
|
||||||
|
return prefix+"/"+suffix;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String getPathPattern(String mountpoint) {
|
private String getPathPattern(String mountpoint) {
|
||||||
if (!mountpoint.startsWith("/")) {
|
if (!mountpoint.startsWith("/")) {
|
||||||
mountpoint = "/"+mountpoint;
|
mountpoint = "/"+mountpoint;
|
||||||
|
@ -244,11 +252,7 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
return mountpoint + "*";
|
return mountpoint + "*";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mountpoint.endsWith("*")) {
|
return mountpoint + "/*";
|
||||||
return mountpoint + "/*";
|
|
||||||
}
|
|
||||||
|
|
||||||
return mountpoint;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -281,7 +285,7 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
pathPattern = getPathPattern(mountpoint);
|
pathPattern = getPathPattern(mountpoint);
|
||||||
staticDir = props.getProperty(name+".static");
|
staticDir = props.getProperty(name+".static");
|
||||||
staticMountpoint = getPathPattern(props.getProperty(name+".staticMountpoint",
|
staticMountpoint = getPathPattern(props.getProperty(name+".staticMountpoint",
|
||||||
"/static"));
|
joinMountpoint(mountpoint, "static")));
|
||||||
xmlrpcHandlerNames = StringUtils.split(props.getProperty(name+".xmlrpcHandler"));
|
xmlrpcHandlerNames = StringUtils.split(props.getProperty(name+".xmlrpcHandler"));
|
||||||
cookieDomain = props.getProperty(name+".cookieDomain");
|
cookieDomain = props.getProperty(name+".cookieDomain");
|
||||||
uploadLimit = props.getProperty(name+".uploadLimit");
|
uploadLimit = props.getProperty(name+".uploadLimit");
|
||||||
|
@ -308,6 +312,7 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
|
|
||||||
// the application is started later in the register method, when it's bound
|
// the application is started later in the register method, when it's bound
|
||||||
app.init();
|
app.init();
|
||||||
|
app.start();
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
Server.getLogger().log("Error creating application " + appName + ": " + x);
|
Server.getLogger().log("Error creating application " + appName + ": " + x);
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
|
@ -402,7 +407,7 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
|
|
||||||
// register as XML-RPC handler
|
// register as XML-RPC handler
|
||||||
xmlrpcHandlers.put(app.getXmlRpcHandlerName(), app);
|
xmlrpcHandlers.put(app.getXmlRpcHandlerName(), app);
|
||||||
app.start();
|
// app.start();
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
Server.getLogger().log("Couldn't bind app: " + x);
|
Server.getLogger().log("Couldn't bind app: " + x);
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
|
@ -439,8 +444,6 @@ public class ApplicationManager implements XmlRpcHandler {
|
||||||
|
|
||||||
// unregister as XML-RPC handler
|
// unregister as XML-RPC handler
|
||||||
xmlrpcHandlers.remove(app.getXmlRpcHandlerName());
|
xmlrpcHandlers.remove(app.getXmlRpcHandlerName());
|
||||||
|
|
||||||
Server.getLogger().log("Unbound application " + appName);
|
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
Server.getLogger().log("Couldn't unbind app: " + x);
|
Server.getLogger().log("Couldn't unbind app: " + x);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue