Author: olamy
Date: Mon Jul  9 22:10:59 2012
New Revision: 1359427

URL: http://svn.apache.org/viewvc?rev=1359427&view=rev
Log:
[MTOMCAT-167] Add the ability to specify context.xml files for each additional 
Webapp being deployed
Submitted by Nigel Sim.

Modified:
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/config/AbstractWebapp.java
    
tomcat/maven-plugin/trunk/tomcat6-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat6/AbstractRunMojo.java
    
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java

Modified: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/config/AbstractWebapp.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/config/AbstractWebapp.java?rev=1359427&r1=1359426&r2=1359427&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/config/AbstractWebapp.java
 (original)
+++ 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/main/java/org/apache/tomcat/maven/common/config/AbstractWebapp.java
 Mon Jul  9 22:10:59 2012
@@ -22,6 +22,8 @@ package org.apache.tomcat.maven.common.c
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.artifact.Artifact;
 
+import java.io.File;
+
 /**
  * @since 2.0
  */
@@ -60,6 +62,8 @@ public class AbstractWebapp
 
     private Artifact artifact;
 
+    private File contextFile;
+
     public AbstractWebapp()
     {
         super();
@@ -149,4 +153,14 @@ public class AbstractWebapp
         this.artifact = artifact;
     }
 
+    public void setContextFile( File contextFile )
+    {
+        this.contextFile = contextFile;
+    }
+
+    public File getContextFile()
+    {
+        return contextFile;
+    }
+
 }
\ No newline at end of file

Modified: 
tomcat/maven-plugin/trunk/tomcat6-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat6/AbstractRunMojo.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat6-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat6/AbstractRunMojo.java?rev=1359427&r1=1359426&r2=1359427&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/tomcat6-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat6/AbstractRunMojo.java
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat6-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat6/AbstractRunMojo.java
 Mon Jul  9 22:10:59 2012
@@ -993,21 +993,26 @@ public abstract class AbstractRunMojo
             // provided scope, not is it optional
             if ( "war".equals( artifact.getType() ) && !artifact.isOptional() 
&& filter.include( artifact ) )
             {
-                addContextFromArtifact( container, contexts, artifact, "/" + 
artifact.getArtifactId() );
+                addContextFromArtifact( container, contexts, artifact, "/" + 
artifact.getArtifactId(), null );
             }
         }
 
         for ( AbstractWebapp additionalWebapp : getAdditionalWebapps() )
         {
-            addContextFromArtifact( container, contexts, getArtifact( 
additionalWebapp ),
-                                    "/" + additionalWebapp.getContextPath() );
+            String contextPath = additionalWebapp.getContextPath();
+            if ( !contextPath.startsWith( "/" ) )
+            {
+                contextPath = "/" + contextPath;
+            }
+            addContextFromArtifact( container, contexts, getArtifact( 
additionalWebapp ), contextPath,
+                                    additionalWebapp.getContextFile() );
         }
         return contexts;
     }
 
 
     private void addContextFromArtifact( Embedded container, List<Context> 
contexts, Artifact artifact,
-                                         String contextPath )
+                                         String contextPath, File contextXml )
         throws MojoExecutionException
     {
         getLog().info( "Deploy warfile: " + String.valueOf( artifact.getFile() 
) + " to contextPath: " + contextPath );
@@ -1040,10 +1045,11 @@ public abstract class AbstractRunMojo
         WebappLoader webappLoader = new WebappLoader( 
Thread.currentThread().getContextClassLoader() );
         Context context = container.createContext( contextPath, 
artifactWarDir.getAbsolutePath() );
         context.setLoader( webappLoader );
-        File contextFile = getContextFile();
+
+        File contextFile = contextXml != null ? contextXml : getContextFile();
         if ( contextFile != null )
         {
-            context.setConfigFile( getContextFile().getAbsolutePath() );
+            context.setConfigFile( contextFile.getAbsolutePath() );
         }
         contexts.add( context );
     }

Modified: 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?rev=1359427&r1=1359426&r2=1359427&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
 Mon Jul  9 22:10:59 2012
@@ -1180,21 +1180,26 @@ public abstract class AbstractRunMojo
             // provided scope, not is it optional
             if ( "war".equals( artifact.getType() ) && !artifact.isOptional() 
&& filter.include( artifact ) )
             {
-                addContextFromArtifact( container, contexts, artifact, "/" + 
artifact.getArtifactId() );
+                addContextFromArtifact( container, contexts, artifact, "/" + 
artifact.getArtifactId(), null );
             }
         }
 
         for ( AbstractWebapp additionalWebapp : getAdditionalWebapps() )
         {
-            addContextFromArtifact( container, contexts, getArtifact( 
additionalWebapp ),
-                                    "/" + additionalWebapp.getContextPath() );
+            String contextPath = additionalWebapp.getContextPath();
+            if ( !contextPath.startsWith( "/" ) )
+            {
+                contextPath = "/" + contextPath;
+            }
+            addContextFromArtifact( container, contexts, getArtifact( 
additionalWebapp ), contextPath,
+                                    additionalWebapp.getContextFile() );
         }
         return contexts;
     }
 
 
     private void addContextFromArtifact( Tomcat container, List<Context> 
contexts, Artifact artifact,
-                                         String contextPath )
+                                         String contextPath, File contextXml )
         throws MojoExecutionException, MalformedURLException
     {
         getLog().info( "Deploy warfile: " + String.valueOf( artifact.getFile() 
) + " to contextPath: " + contextPath );
@@ -1227,11 +1232,13 @@ public abstract class AbstractRunMojo
         WebappLoader webappLoader = new WebappLoader( 
Thread.currentThread().getContextClassLoader() );
         Context context = container.addContext( contextPath, 
artifactWarDir.getAbsolutePath() );
         context.setLoader( webappLoader );
-        File contextFile = getContextFile();
+
+        File contextFile = contextXml != null ? contextXml : getContextFile();
         if ( contextFile != null )
         {
-            context.setConfigFile( getContextFile().toURI().toURL() );
+            context.setConfigFile( contextFile.toURI().toURL() );
         }
+
         contexts.add( context );
 //        container.getHost().addChild(context);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to