Hi, Here it's a global option at the mojo level to disable filtering on user defined file extensions. IMHO, it's more easy for a user to not have declare twice a resource (in the war plugin : webResource or an overlay) directory : - one with filtering enabled (with some includes/excludes to exclude binary files) - one with filtering disabled (with the opposite includes/excludes to exclude the previous filtered resources)
No, it's not yet documented but I will (sorry I MUST ;-) ) do it. And IMHO again, it could be a nice feature to add in the maven-ressources-plugin. Thoughts/Comments are welcome. Thanks, -- Olivier 2008/2/16, Stephane Nicoll <[EMAIL PROTECTED]>: > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]