Author: olamy
Date: Mon Feb 18 16:02:39 2008
New Revision: 628928

URL: http://svn.apache.org/viewvc?rev=628928&view=rev
Log:
add :
- unit with adding token
- test escaping windows path
- usage page with code samples


Added:
    maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt   (with 
props)
Modified:
    maven/sandbox/trunk/shared/maven-filtering/src/site/site.xml
    
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
    
maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt

Added: maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt?rev=628928&view=auto
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt (added)
+++ maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt Mon Feb 
18 16:02:39 2008
@@ -0,0 +1,85 @@
+ ------
+ Basic Usage
+ ------
+ Olivier Lamy
+ ------
+ 2008-02-18
+ ------
+
+ ~~ Licensed to the Apache Software Foundation (ASF) under one
+ ~~ or more contributor license agreements.  See the NOTICE file
+ ~~ distributed with this work for additional information
+ ~~ regarding copyright ownership.  The ASF licenses this file
+ ~~ to you under the Apache License, Version 2.0 (the
+ ~~ "License"); you may not use this file except in compliance
+ ~~ with the License.  You may obtain a copy of the License at
+ ~~
+ ~~   http://www.apache.org/licenses/LICENSE-2.0
+ ~~
+ ~~ Unless required by applicable law or agreed to in writing,
+ ~~ software distributed under the License is distributed on an
+ ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~~ KIND, either express or implied.  See the License for the
+ ~~ specific language governing permissions and limitations
+ ~~ under the License.
+
+Maven Filtering Component Basic Usage
+
+* Filtering a List of org.apache.maven.model.Resource. 
+  
+  Lookup the component in your Mojo
+  
++-----+
+  
+    /**
+     * @component 
role="org.apache.maven.shared.filtering.MavenResourcesFiltering" 
role-hint="default"
+     * @required
+     */    
+    private MavenResourcesFiltering mavenResourcesFiltering;
+  
++-----+
+
+  Apply filtering on your resources List (see {{{../index.html}Reference}} to 
see the default FilterWrappers used).
+
++-----+
+
+encoding can be null platform default will be used
+
+nonFilteredFileExtensions : is a List of String which file extensions to not 
apply filtering (default List contains jpg,jpeg,gif,bmp,png)
+
+mavenResourcesFiltering.filterResources( resources, outputDirectory, 
mavenProject, encoding, filtersFile, nonFilteredFileExtensions );
+
++-----+
+
+* Adding new filtering Token
+
+  You must use the other methods from the MavenResourcesFiltering component 
and construct your own List of FilterWrapper.
+  The following example add the interpolation for the Token @ @ with using 
values coming from reflection with the Maven Project.
+
++-----+
+
+MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( 
MavenFileFilter.class.getName(), "default" );
+List defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers( 
mavenProject, null, true );
+
+List filterWrappers = new ArrayList( );
+filterWrappers.addAll( defaultFilterWrappers );
+FileUtils.FilterWrapper filterWrapper = new FileUtils.FilterWrapper()
+{
+    public Reader getReader( Reader reader )
+    {
+        ReflectionProperties reflectionProperties = new ReflectionProperties( 
mavenProject, true );
+        return new InterpolationFilterReader( reader, reflectionProperties, 
"@", "@" );
+    }
+};
+filterWrappers.add( filterWrapper );
+
+here you can apply filtering on your resources.
+
+encoding can be null platform default will be used
+
+nonFilteredFileExtensions : is a List of String which file extensions to not 
apply filtering (default List contains jpg,jpeg,gif,bmp,png)
+
+mavenResourcesFiltering.filterResources( resources, outputDirectory, encoding, 
filterWrappers,
+                                         outputDirectory, 
nonFilteredFileExtensions );
+
++-----+

Propchange: maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/sandbox/trunk/shared/maven-filtering/src/site/apt/usage.apt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/sandbox/trunk/shared/maven-filtering/src/site/site.xml
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/site/site.xml?rev=628928&r1=628927&r2=628928&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-filtering/src/site/site.xml (original)
+++ maven/sandbox/trunk/shared/maven-filtering/src/site/site.xml Mon Feb 18 
16:02:39 2008
@@ -37,6 +37,7 @@
   <body>
     <menu name="Overview">
       <item name="Reference" href="index.html"/>
+      <item name="Usage" href="usage.html"/>
     </menu>
     <!-- TODO: Link, head, reports should be inherited -->
     <!-- TODO: use breadcrumbs more structure, links for links, and inherit 
subprojects as a menu or not at all -->

Modified: 
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=628928&r1=628927&r2=628928&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
 Mon Feb 18 16:02:39 2008
@@ -22,15 +22,18 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
 import org.apache.maven.model.Resource;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.InterpolationFilterReader;
 
 /**
  * @author <a href="mailto:[EMAIL PROTECTED]">olamy</a>
@@ -56,12 +59,15 @@
         outputDirectory.mkdirs();
     }
     
+   
     public void testSimpleFiltering()
         throws Exception
     {
-        StubMavenProject mavenProject = new StubMavenProject( new File( 
getBasedir() ) );
+        File baseDir = new File( "c:\\foo\\bar" );
+        StubMavenProject mavenProject = new StubMavenProject( baseDir );
         mavenProject.setVersion( "1.0" );
         mavenProject.setGroupId( "org.apache" );
+        mavenProject.setName( "test project" );
 
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
@@ -97,16 +103,70 @@
         assertEquals("bar", result.get( "foo" ));
         // FIXME this can fail with a windows path
         String base = result.getProperty( "base" );
-        assertEquals(getBasedir(), base);
         
         assertEquals( "@@", result.getProperty( "emptyexpression" ) );
         assertEquals( "${}", result.getProperty( "emptyexpression2" ) );
         assertEquals( "zloug", result.getProperty( "javaVersion" ) );
         
+        assertEquals( baseDir.toString(), result.get( "base" ) );
+        
         File imageFile = new File(outputDirectory, "happy_duke.gif");
         assertTrue( imageFile.exists() );
         //assertEquals( initialImageFile.length(), imageFile.length() );
         assertTrue(filesAreIdentical( initialImageFile, imageFile ));
+    }
+    
+    public void testaddingTokens()
+        throws Exception
+    {
+        File baseDir = new File( "c:\\foo\\bar" );
+        final StubMavenProject mavenProject = new StubMavenProject( baseDir );
+        mavenProject.setVersion( "1.0" );
+        mavenProject.setGroupId( "org.apache" );
+        mavenProject.setName( "test project" );
+
+        Properties projectProperties = new Properties();
+        projectProperties.put( "foo", "bar" );
+        projectProperties.put( "java.version", "zloug" );
+        mavenProject.setProperties( projectProperties );
+        MavenResourcesFiltering mavenResourcesFiltering = 
(MavenResourcesFiltering) lookup( MavenResourcesFiltering.class
+            .getName() );
+
+        String unitFilesDir = getBasedir() + 
"/src/test/units-files/maven-resources-filtering";
+        File initialImageFile = new File( unitFilesDir, "happy_duke.gif" );
+
+        Resource resource = new Resource();
+        List resources = new ArrayList();
+        resources.add( resource );
+        resource.setDirectory( unitFilesDir );
+        resource.setFiltering( true );
+
+        List filtersFile = new ArrayList();
+        filtersFile.add( getBasedir()
+            + 
"/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt"
 );
+
+        List nonFilteredFileExtensions = Collections.singletonList( "gif" );
+        
+        MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( 
MavenFileFilter.class.getName(), "default" );
+        List defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers( 
mavenProject, null, true );
+
+        List filterWrappers = new ArrayList( );
+        filterWrappers.addAll( defaultFilterWrappers );
+        FileUtils.FilterWrapper filterWrapper = new FileUtils.FilterWrapper()
+        {
+            public Reader getReader( Reader reader )
+            {
+                ReflectionProperties reflectionProperties = new 
ReflectionProperties( mavenProject, true );
+                return new InterpolationFilterReader( reader, 
reflectionProperties, "@", "@" );
+            }
+        };
+        filterWrappers.add( filterWrapper );
+        mavenResourcesFiltering.filterResources( resources, outputDirectory, 
null, filterWrappers,
+                                                 new File( getBasedir() ), 
nonFilteredFileExtensions );
+        
+        Properties result = PropertyUtils.loadPropertyFile( new 
File(outputDirectory, "maven-resources-filtering.txt"), null );
+        assertFalse( result.isEmpty() );
+        assertEquals( mavenProject.getName(), result.get( "pomName" ) );
     }
     
     public void testNoFiltering()

Modified: 
maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt?rev=628928&r1=628927&r2=628928&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
 (original)
+++ 
maven/sandbox/trunk/shared/maven-filtering/src/test/units-files/maven-resources-filtering/maven-resources-filtering.txt
 Mon Feb 18 16:02:39 2008
@@ -23,4 +23,5 @@
 base=${pom.basedir}
 emptyexpression=@@
 emptyexpression2=${}
-javaVersion=${java.version}
\ No newline at end of file
+javaVersion=${java.version}
[EMAIL PROTECTED]@
\ No newline at end of file


Reply via email to