Author: olamy Date: Tue Oct 18 16:32:23 2011 New Revision: 1185743 URL: http://svn.apache.org/viewvc?rev=1185743&view=rev Log: [MTOMCAT-102] if there a context.xml in the war META-INF/context.xml use it for the context.
Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1185743&r1=1185742&r2=1185743&view=diff ============================================================================== --- tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java (original) +++ tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Tue Oct 18 16:32:23 2011 @@ -18,17 +18,20 @@ package org.apache.tomcat.maven.runner; * under the License. */ +import org.apache.catalina.Context; import org.apache.catalina.connector.Connector; import org.apache.catalina.startup.Catalina; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.valves.AccessLogValve; import org.apache.tomcat.util.http.fileupload.FileUtils; +import org.apache.tomcat.util.http.fileupload.IOUtils; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -133,6 +136,7 @@ public class Tomcat7Runner if ( this.enableNaming() ) { + System.setProperty( "catalina.useNaming", "true" ); tomcat.enableNaming(); } @@ -190,17 +194,21 @@ public class Tomcat7Runner // add webapps for ( Map.Entry<String, String> entry : this.webappWarPerContext.entrySet() ) { + String baseDir = null; if ( entry.getKey().equals( "/" ) ) { - tomcat.addWebapp( entry.getKey(), - new File( extractDirectory, "webapps/ROOT.war" ).getAbsolutePath() ); + baseDir = new File( extractDirectory, "webapps/ROOT.war" ).getAbsolutePath(); } else { - tomcat.addWebapp( entry.getKey(), - new File( extractDirectory, "webapps/" + entry.getValue() ).getAbsolutePath() ); + baseDir = new File( extractDirectory, "webapps/" + entry.getValue() ).getAbsolutePath(); + } + Context context = tomcat.addWebapp( entry.getKey(), baseDir ); + URL contextFileUrl = getContextXml( baseDir ); + if ( contextFileUrl != null ) + { + context.setConfigFile( contextFileUrl ); } - } tomcat.start(); @@ -210,6 +218,28 @@ public class Tomcat7Runner } + private URL getContextXml( String warPath ) + throws IOException + { + InputStream inputStream = null; + try + { + URL url = new URL( "jar:file:" + warPath + "!/META-INF/context.xml" ); + inputStream = url.openConnection().getInputStream(); + if ( inputStream != null ) + { + return url; + } + } + finally + { + IOUtils.closeQuietly( inputStream ); + } + return null; + } + + //protected WebappLoader createWebappLoader() + private void waitIndefinitely() { Object lock = new Object(); @@ -250,7 +280,6 @@ public class Tomcat7Runner } extractDirectory.mkdirs(); - // ensure webapp dir is here new File( extractDirectory, "webapps" ).mkdirs(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org