Author: rmannibucau
Date: Tue Nov 13 12:06:30 2012
New Revision: 1408689
URL: http://svn.apache.org/viewvc?rev=1408689&view=rev
Log:
TOMEE-568 wardircontext support
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1408689&r1=1408688&r2=1408689&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Tue Nov 13 12:06:30 2012
@@ -616,7 +616,7 @@ public class TomcatWebAppBuilder impleme
final StandardContext standardContext =
contextInfo.standardContext;
undeploy(standardContext, contextInfo);
- final File extracted = new
File(standardContext.getServletContext().getRealPath(""));
+ final File extracted = warPath(standardContext);
if (isExtracted(extracted)) {
deleteDir(extracted);
}
@@ -741,6 +741,22 @@ public class TomcatWebAppBuilder impleme
}
private static File warPath(final StandardContext standardContext) {
+ final File file = realWarPath(standardContext);
+ if (file == null) {
+ return file;
+ }
+
+ final String name = file.getName();
+ if (!file.isDirectory() && name.endsWith(".war")) {
+ final File extracted = new File(file.getParentFile(),
name.substring(0, name.length() - ".war".length()));
+ if (extracted.exists()) {
+ return extracted;
+ }
+ }
+ return file;
+ }
+
+ private static File realWarPath(final StandardContext standardContext) {
String doc = standardContext.getDocBase();
// handle ROOT case
if (doc == null || doc.length() == 0) {
@@ -1459,9 +1475,9 @@ public class TomcatWebAppBuilder impleme
final StandardContext standardContext =
contextInfo.standardContext;
final HostConfig deployer = contextInfo.deployer;
deployer.unmanageApp(standardContext.getPath());
- final String realPath =
standardContext.getServletContext().getRealPath("");
+ final File realPath = warPath(standardContext);
if (realPath != null) {
- deleteDir(new File(realPath));
+ deleteDir(realPath);
}
}
}
@@ -1635,7 +1651,7 @@ public class TomcatWebAppBuilder impleme
final TomcatDeploymentLoader tomcatDeploymentLoader = new
TomcatDeploymentLoader(standardContext, id);
final AppModule appModule;
try {
- appModule = tomcatDeploymentLoader.load(new
File(servletContext.getRealPath(".")).getParentFile());
+ appModule = tomcatDeploymentLoader.load(warPath(standardContext));
} catch (OpenEJBException e) {
throw new TomEERuntimeException(e);
}