You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2008/05/22 21:14:37 UTC

svn commit: r659214 - in /maven/plugins/trunk/maven-war-plugin/src: it/simple-war-project/ it/simple-war-project/src/main/webapp/WEB-INF/ main/java/org/apache/maven/plugin/war/ main/java/org/apache/maven/plugin/war/packaging/

Author: olamy
Date: Thu May 22 12:14:35 2008
New Revision: 659214

URL: http://svn.apache.org/viewvc?rev=659214&view=rev
Log:
[MWAR-159] Filtering deployments descriptors (web.xml)


Modified:
    maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/pom.xml
    maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/src/main/webapp/WEB-INF/web.xml
    maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/verify.bsh
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java   (contents, props changed)

Modified: maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/pom.xml?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/pom.xml (original)
+++ maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/pom.xml Thu May 22 12:14:35 2008
@@ -26,13 +26,15 @@
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>Maven Simple War Project Test</name>
+  <description>maven test it</description>
   <build>
     <plugins>
       <plugin>
         <artifactId>maven-war-plugin</artifactId>
         <version>@pom.version@</version>
         <configuration>
-        
+          <!--webXml>src/main/webapp/WEB-INF/web.xml</webXml-->
+          <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
         </configuration>
       </plugin>
     </plugins>

Modified: maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/src/main/webapp/WEB-INF/web.xml?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/src/main/webapp/WEB-INF/web.xml (original)
+++ maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/src/main/webapp/WEB-INF/web.xml Thu May 22 12:14:35 2008
@@ -23,7 +23,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
-  <display-name>Maven Simple War Project Test</display-name>
+  <display-name>${pom.description}</display-name>
 
 </web-app>
 

Modified: maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/verify.bsh?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/verify.bsh (original)
+++ maven/plugins/trunk/maven-war-plugin/src/it/simple-war-project/verify.bsh Thu May 22 12:14:35 2008
@@ -20,6 +20,8 @@
 
 import java.io.*;
 
+import org.codehaus.plexus.util.*;
+
 boolean result = true;
 
 try
@@ -45,6 +47,19 @@
         return false;
     }  
     
+    
+    
+    FileInputStream fis = new FileInputStream ( webInfFile );
+    String paramContent = IOUtil.toString ( fis );
+    
+    
+    int indexOf = paramContent.indexOf( "<display-name>maven test it</display-name>" );
+    if ( indexOf < 0)
+    {
+      System.err.println( "web.xml not contains <display-name>maven test it</display-name>" );
+      return false;
+    }    
+    
     File indexJsp = new File( webappDirectory, "index.jsp" );
     if ( !indexJsp.exists() || indexJsp.isDirectory() )
     {

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java Thu May 22 12:14:35 2008
@@ -269,6 +269,14 @@
      * @since 2.1-alpha-2
      */
      private MavenSession session;
+     
+     /**
+      * To filtering deployment descriptors <b>disabled by default</b> 
+      * 
+      * @parameter expression="${maven.war.filteringDeploymentDescriptors}" default-value="false"
+      * @since 2.1-alpha-2
+      */     
+     private boolean filteringDeploymentDescriptors = false;
     
 
     /**
@@ -426,7 +434,8 @@
         
         final WarPackagingContext context = new DefaultWarPackagingContext( webappDirectory, cache, overlayManager,
                                                                             filterWrappers,
-                                                                            getNonFilteredFileExtensions() );
+                                                                            getNonFilteredFileExtensions(),
+                                                                            filteringDeploymentDescriptors );
         final Iterator it = packagingTasks.iterator();
         while ( it.hasNext() )
         {
@@ -516,15 +525,18 @@
         private final List filterWrappers;
         
         private List nonFilteredFileExtensions;
+        
+        private boolean filteringDeploymentDescriptors;
 
         public DefaultWarPackagingContext( File webappDirectory, final WebappStructure webappStructure,
                                            final OverlayManager overlayManager, List filterWrappers,
-                                           List nonFilteredFileExtensions )
+                                           List nonFilteredFileExtensions, boolean filteringDeploymentDescriptors )
         {
             this.webappDirectory = webappDirectory;
             this.webappStructure = webappStructure;
             this.overlayManager = overlayManager;
             this.filterWrappers = filterWrappers;
+            this.filteringDeploymentDescriptors = filteringDeploymentDescriptors;
             this.nonFilteredFileExtensions = nonFilteredFileExtensions == null ? Collections.EMPTY_LIST
                                                                               : nonFilteredFileExtensions;
             // This is kinda stupid but if we loop over the current overlays and we request the path structure
@@ -631,6 +643,11 @@
         {
             return !mavenResourcesFiltering.filteredFileExtension( fileName, nonFilteredFileExtensions );
         }
+
+        public boolean isFilteringDeploymentDescriptors()
+        {
+            return filteringDeploymentDescriptors;
+        }
         
     }
 

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java Thu May 22 12:14:35 2008
@@ -181,4 +181,6 @@
      * @since 2.1-alpha-2
      */
     boolean isNonFilteredExtension( String fileName );
+    
+    boolean isFilteringDeploymentDescriptors();
 }

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java?rev=659214&r1=659213&r2=659214&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java Thu May 22 12:14:35 2008
@@ -28,6 +28,7 @@
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.war.Overlay;
 import org.apache.maven.plugin.war.util.PathSet;
+import org.apache.maven.shared.filtering.MavenFilteringException;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -212,17 +213,44 @@
                 {
                     throw new MojoFailureException( "The specified web.xml file '" + webXml + "' does not exist" );
                 }
+                if ( context.isFilteringDeploymentDescriptors() )
+                {
+                    context.getMavenFileFilter().copyFile( webXml, new File( webinfDir, "web.xml" ), true,
+                                                           context.getFilterWrappers(), null );
+                }
+                else
+                {
+                    copyFile( context, webXml, new File( webinfDir, "web.xml" ), "WEB-INF/web.xml", true );
+                }
 
-                //rename to web.xml
-                copyFile( context, webXml, new File( webinfDir, "web.xml" ), "WEB-INF/web.xml", true );
                 context.getWebappStructure().getFullStructure().add( WEB_INF_PATH + "/web.xml" );
             }
+            else
+            {
+                // the webXml can be the default one
+                File defaultWebXml = new File( context.getWebappSourceDirectory(), WEB_INF_PATH + "/web.xml" );
+                // if exists we can filter it
+                if ( defaultWebXml.exists() && context.isFilteringDeploymentDescriptors() )
+                {
+                    context.getMavenFileFilter().copyFile( defaultWebXml, new File( webinfDir, "web.xml" ), true,
+                                                           context.getFilterWrappers(), null );
+                    context.getWebappStructure().getFullStructure().add( WEB_INF_PATH + "/web.xml" );
+                }
+            }
 
             if ( containerConfigXML != null && StringUtils.isNotEmpty( containerConfigXML.getName() ) )
             {
                 String xmlFileName = containerConfigXML.getName();
+                if (context.isFilteringDeploymentDescriptors())
+                {
+                    context.getMavenFileFilter().copyFile( containerConfigXML, new File( metainfDir, xmlFileName ),
+                                                           true, context.getFilterWrappers(), null );
+                }
+                else
+                {
                 copyFile( context, containerConfigXML, new File( metainfDir, xmlFileName ), "META-INF/" + xmlFileName,
                           true );
+                }
                 context.getWebappStructure().getFullStructure().add( META_INF_PATH + "/" + xmlFileName );
             }
         }
@@ -230,6 +258,10 @@
         {
             throw new MojoExecutionException( "Failed to copy deployment descriptor", e );
         }
+        catch ( MavenFilteringException e )
+        {
+            throw new MojoExecutionException( "Failed to copy deployment descriptor", e );
+        }
     }
 
 

Propchange: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarProjectPackagingTask.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision