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