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]

Reply via email to