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 ); }