There is the include, exclude filter for this, right or did you added this to have some sort of "gloal policy" regarding filtering? Is this documented on the site?
Thanks, Stéphane ---------- Forwarded message ---------- From: <[EMAIL PROTECTED]> Date: Sat, Feb 16, 2008 at 1:37 AM Subject: svn commit: r628218 - in /maven/plugins/trunk/maven-war-plugin/src: it/MWAR-143/ it/MWAR-143/war-common/ it/MWAR-143/war-common/src/main/images/ main/java/org/apache/maven/plugin/war/ main/java/org/apache/maven/plugin/war/packaging/ To: [EMAIL PROTECTED] Author: olamy Date: Fri Feb 15 16:37:38 2008 New Revision: 628218 URL: http://svn.apache.org/viewvc?rev=628218&view=rev Log: [MWAR-145] Add a mojo parameter for file extensions which must not be filtered. Added: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/ maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/duke-beer.jpg (with props) Modified: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/pom.xml maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/verify.bsh maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/pom.xml 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/AbstractWarPackagingTask.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 Modified: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/pom.xml?rev=628218&r1=628217&r2=628218&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/pom.xml (original) +++ maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/pom.xml Fri Feb 15 16:37:38 2008 @@ -32,7 +32,13 @@ <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> - <version>@pom.version@</version> + <!--version>@pom.version@</version--> + <version>2.1-alpha-2-SNAPSHOT</version> + <configuration> + <nonFilteredFileExtensions> + <nonFilteredFileExtension>jpg</nonFilteredFileExtension> + </nonFilteredFileExtensions> + </configuration> </plugin> </plugins> </pluginManagement> Modified: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/verify.bsh URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/verify.bsh?rev=628218&r1=628217&r2=628218&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/verify.bsh (original) +++ maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/verify.bsh Fri Feb 15 16:37:38 2008 @@ -23,8 +23,55 @@ boolean result = true; +filesAreIdentical( File expected, File current ) + throws IOException +{ + if ( expected.length() != current.length() ) + { + return false; + } + FileInputStream expectedIn = new FileInputStream( expected ); + FileInputStream currentIn = new FileInputStream( current ); + try + { + byte[] expectedBuffer = IOUtil.toByteArray( expectedIn ); + + byte[] currentBuffer = IOUtil.toByteArray( currentIn ); + if (expectedBuffer.length != currentBuffer.length) + { + return false; + } + for (int i = 0,size = expectedBuffer.length;i<size;i++) + { + if(expectedBuffer[i]!= currentBuffer[i]) + { + return false; + } + } + } + finally + { + expectedIn.close(); + currentIn.close(); + } + return true; +} + try { + + File originalImg = new File( basedir, "war-common/src/main/images/duke-beer.jpg" ); + + File targetImg = new File( basedir, "war-common/target/common-overlay-1.0-SNAPSHOT/duke-beer.jpg" ); + + boolean identical = filesAreIdentical( originalImg, targetImg ); + + if (!identical) + { + System.err.println( "filtered images are not identical in war-common." ); + return false; + } + File target = new File( basedir, "war-filter-overlay/target" ); if ( !target.exists() || !target.isDirectory() ) { @@ -57,6 +104,16 @@ return false; } + targetImg = new File( basedir, "war-filter-overlay/target/custom-manifest-1.0-SNAPSHOT/duke-beer.jpg" ); + + boolean identical = filesAreIdentical( originalImg, targetImg ); + + if (!identical) + { + System.err.println( "filtered images are not identical with overlay." ); + return false; + } + } catch( Throwable e ) { @@ -65,3 +122,4 @@ } return result; + Modified: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/pom.xml?rev=628218&r1=628217&r2=628218&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/pom.xml (original) +++ maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/pom.xml Fri Feb 15 16:37:38 2008 @@ -32,13 +32,19 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> + <artifactId>maven-war-plugin</artifactId> <configuration> <archive> <manifestEntries> <Class-Path>properties</Class-Path> </manifestEntries> - </archive> + </archive> + <webResources> + <resource> + <directory>src/main/images</directory> + <filtering>true</filtering> + </resource> + </webResources> </configuration> </plugin> </plugins> Added: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/duke-beer.jpg URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/duke-beer.jpg?rev=628218&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/duke-beer.jpg ------------------------------------------------------------------------------ svn:executable = * Propchange: maven/plugins/trunk/maven-war-plugin/src/it/MWAR-143/war-common/src/main/images/duke-beer.jpg ------------------------------------------------------------------------------ svn:mime-type = image/jpeg 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=628218&r1=628217&r2=628218&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 Fri Feb 15 16:37:38 2008 @@ -24,6 +24,7 @@ import java.io.Reader; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -243,6 +244,15 @@ * @since 2.1 */ private List overlays = new ArrayList(); + + /** + * A list of file extensions to not filtering. + * <b>will be used for webResources and overlay filtering</b> + * + * @parameter + * @since 2.1-alpha-2 + */ + private List nonFilteredFileExtensions; /** * The maven archive configuration to use. @@ -397,7 +407,9 @@ throw new MojoExecutionException( e.getMessage(), e ); } - final WarPackagingContext context = new DefaultWarPackagingContext( webappDirectory, cache, overlayManager, filterWrappers ); + final WarPackagingContext context = new DefaultWarPackagingContext( webappDirectory, cache, overlayManager, + filterWrappers, + getNonFilteredFileExtensions() ); final Iterator it = packagingTasks.iterator(); while ( it.hasNext() ) { @@ -485,15 +497,19 @@ private final OverlayManager overlayManager; private final List filterWrappers; + + private List nonFilteredFileExtensions; public DefaultWarPackagingContext( File webappDirectory, final WebappStructure webappStructure, - final OverlayManager overlayManager, List filterWrappers ) + final OverlayManager overlayManager, List filterWrappers, + List nonFilteredFileExtensions ) { this.webappDirectory = webappDirectory; this.webappStructure = webappStructure; this.overlayManager = overlayManager; this.filterWrappers = filterWrappers; - + 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 // it will register it. This will avoid wrong warning messages in a later phase final Iterator it = overlayManager.getOverlayIds().iterator(); @@ -593,7 +609,15 @@ { return filterWrappers; } - + + public boolean isNonFilteredExtension( String fileName ) + { + if (StringUtils.isEmpty( fileName )) + { + return false; + } + return nonFilteredFileExtensions.contains( FileUtils.extension( fileName ) ); + } } @@ -776,5 +800,15 @@ public MavenArchiveConfiguration getArchive() { return archive; + } + + public List getNonFilteredFileExtensions() + { + return nonFilteredFileExtensions; + } + + public void setNonFilteredFileExtensions( List nonFilteredFileExtensions ) + { + this.nonFilteredFileExtensions = nonFilteredFileExtensions; } } Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java?rev=628218&r1=628217&r2=628218&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java (original) +++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java Fri Feb 15 16:37:38 2008 @@ -92,7 +92,8 @@ } - if ( filtered ) + if ( filtered + && !context.isNonFilteredExtension( sourceFile.getName() ) ) { copyFilteredFile( sourceId, context, sourceFile, destinationFileName ); } 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=628218&r1=628217&r2=628218&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 Fri Feb 15 16:37:38 2008 @@ -169,5 +169,10 @@ * @since 2.1-alpha-2 */ List getFilterWrappers(); - + + /** + * @param fileName + * @return @since 2.1-alpha-2 + */ + boolean isNonFilteredExtension( String fileName ); } 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=628218&r1=628217&r2=628218&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 Fri Feb 15 16:37:38 2008 @@ -273,7 +273,7 @@ } } context.getLog().debug( "copy targetFileName with targetPath " + targetFileName ); - if ( resource.isFiltering() ) + if ( resource.isFiltering() && !context.isNonFilteredExtension( fileNames[i] ) ) { copyFilteredFile( id, context, new File( resource.getDirectory(), fileNames[i] ), targetFileName ); } -- Large Systems Suck: This rule is 100% transitive. If you build one, you suck" -- S.Yegge --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]