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