You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2008/09/13 23:33:07 UTC
svn commit: r695031 - in /maven/shared/trunk/maven-filtering/src:
main/java/org/apache/maven/shared/filtering/ site/apt/
test/java/org/apache/maven/shared/filtering/ test/units-files/
Author: olamy
Date: Sat Sep 13 14:33:06 2008
New Revision: 695031
URL: http://svn.apache.org/viewvc?rev=695031&view=rev
Log:
[MSHARED-67] Add a parameter to force overwrite existing files even if the destination files are newer
Added:
maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java (with props)
maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties (with props)
Modified:
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
maven/shared/trunk/maven-filtering/src/site/apt/index.apt
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java?rev=695031&r1=695030&r2=695031&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java Sat Sep 13 14:33:06 2008
@@ -61,7 +61,15 @@
public void copyFile( File from, File to, boolean filtering, List filterWrappers, String encoding )
throws MavenFilteringException
{
-
+ // overwrite forced to false to preserve backward comp
+ copyFile( from, to, filtering, filterWrappers, encoding, false );
+ }
+
+
+
+ public void copyFile( File from, File to, boolean filtering, List filterWrappers, String encoding, boolean overwrite )
+ throws MavenFilteringException
+ {
try
{
if ( filtering )
@@ -80,14 +88,14 @@
{
getLogger().debug( "copy " + from.getPath() + " to " + to.getPath() );
}
- FileUtils.copyFile( from, to, encoding, new FileUtils.FilterWrapper[0] );
+ FileUtils.copyFile( from, to, encoding, new FileUtils.FilterWrapper[0], overwrite );
}
}
catch ( IOException e )
{
throw new MavenFilteringException( e.getMessage(), e );
}
-
+
}
/**
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java?rev=695031&r1=695030&r2=695031&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java Sat Sep 13 14:33:06 2008
@@ -257,7 +257,7 @@
mavenFileFilter.copyFile( source, destinationFile, resource.isFiltering() && filteredExt,
mavenResourcesExecution.getFilterWrappers(), mavenResourcesExecution
- .getEncoding() );
+ .getEncoding(), mavenResourcesExecution.isOverwrite() );
}
}
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java?rev=695031&r1=695030&r2=695031&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java Sat Sep 13 14:33:06 2008
@@ -57,6 +57,20 @@
void copyFile( File from, final File to, boolean filtering, List filterWrappers, String encoding )
throws MavenFilteringException;
+
+ /**
+ * @param from
+ * @param to
+ * @param filtering
+ * @param filterWrappers
+ * @param encoding
+ * @param overwrite
+ * @since 1.0-beta-2
+ * @throws MavenFilteringException
+ */
+ void copyFile( File from, final File to, boolean filtering, List filterWrappers, String encoding, boolean overwrite )
+ throws MavenFilteringException;
+
/**
*
* Will return the default FileUtils.FilterWrappers
Modified: maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java?rev=695031&r1=695030&r2=695031&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java (original)
+++ maven/shared/trunk/maven-filtering/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java Sat Sep 13 14:33:06 2008
@@ -66,15 +66,22 @@
/**
* List of String considered as expressions which contains values in the project/pom : pom project
* default value will be pom and project.
- *
+ * @since 1.0-beta-2
*/
private List projectStartExpressions = new ArrayList();
/**
* String which will escape interpolation mechanism : foo \${foo.bar} -> foo ${foo.bar}
+ * @since 1.0-beta-2
*/
private String escapeString;
+ /**
+ * Overwrite existing files even if the destination files are newer.
+ * <b>false by default</b>
+ * @since 1.0-beta-2
+ */
+ private boolean overwrite = false;
public MavenResourcesExecution()
{
@@ -325,24 +332,58 @@
this.useDefaultFilterWrappers = useDefaultFilterWrappers;
}
+ /**
+ * @return
+ * @since 1.0-beta-2
+ */
public List getProjectStartExpressions()
{
return projectStartExpressions;
}
+ /**
+ * @param projectStartExpressions
+ * @since 1.0-beta-2
+ */
public void setProjectStartExpressions( List projectStartExpressions )
{
this.projectStartExpressions = projectStartExpressions;
}
+ /**
+ * @return
+ * @since 1.0-beta-2
+ */
public String getEscapeString()
{
return escapeString;
}
+ /**
+ * @param escapeString
+ * @since 1.0-beta-2
+ */
public void setEscapeString( String escapeString )
{
this.escapeString = escapeString;
}
+
+ /**
+ * @return
+ * @since 1.0-beta-2
+ */
+ public boolean isOverwrite()
+ {
+ return overwrite;
+ }
+
+ /**
+ * @param overwrite
+ * @since 1.0-beta-2
+ */
+ public void setOverwrite( boolean overwrite )
+ {
+ this.overwrite = overwrite;
+ }
}
Modified: maven/shared/trunk/maven-filtering/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/site/apt/index.apt?rev=695031&r1=695030&r2=695031&view=diff
==============================================================================
--- maven/shared/trunk/maven-filtering/src/site/apt/index.apt (original)
+++ maven/shared/trunk/maven-filtering/src/site/apt/index.apt Sat Sep 13 14:33:06 2008
@@ -28,6 +28,10 @@
These Plexus components have been built from the filtering process/code in Maven Resources Plugin.
The goal is to provide a shared component for all plugins which needs to filter resources.
+
+* What's New in 1.0-beta-2
+
+ TO WRITE
* MavenResourcesFiltering
Added: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java?rev=695031&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java (added)
+++ maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java Sat Sep 13 14:33:06 2008
@@ -0,0 +1,94 @@
+package org.apache.maven.shared.filtering;
+
+import java.io.File;
+import java.util.Properties;
+
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.FileUtils;
+
+/*
+ * 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.
+ */
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @version $Id$
+ */
+public class DefaultMavenFileFilterTest
+ extends PlexusTestCase
+{
+
+ File to = new File(getBasedir(), "target/reflection-test.properties");
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ if (to.exists())
+ {
+ FileUtils.forceDelete( to );
+ }
+ }
+
+ public void testNotOverwriteFile()
+ throws Exception
+ {
+ MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( MavenFileFilter.class.getName(), "default" );
+
+ File from = new File( getBasedir(), "src/test/units-files/reflection-test.properties" );
+
+ mavenFileFilter.copyFile( from, to, false, null, null );
+
+ from = new File( getBasedir(), "src/test/units-files/reflection-test-older.properties" );
+
+ // very old file :-)
+ from.setLastModified( 1 );
+
+ to.setLastModified( System.currentTimeMillis() );
+
+ mavenFileFilter.copyFile( from, to, false, null, null );
+
+ Properties properties = PropertyUtils.loadPropertyFile( to, null );
+ assertEquals( "${pom.version}", properties.getProperty( "version" ) );
+
+ }
+
+ public void testOverwriteFile()
+ throws Exception
+ {
+ MavenFileFilter mavenFileFilter = (MavenFileFilter) lookup( MavenFileFilter.class.getName(), "default" );
+
+ File from = new File( getBasedir(), "src/test/units-files/reflection-test.properties" );
+
+ mavenFileFilter.copyFile( from, to, false, null, null );
+
+ from = new File( getBasedir(), "src/test/units-files/reflection-test-older.properties" );
+
+ // very old file :-)
+ from.setLastModified( 1 );
+
+ to.setLastModified( System.currentTimeMillis() );
+
+ mavenFileFilter.copyFile( from, to, false, null, null, true );
+
+ Properties properties = PropertyUtils.loadPropertyFile( to, null );
+ assertEquals( "older file", properties.getProperty( "version" ) );
+
+ }
+
+}
Propchange: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Revision Id
Added: maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties?rev=695031&view=auto
==============================================================================
--- maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties (added)
+++ maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties Sat Sep 13 14:33:06 2008
@@ -0,0 +1,19 @@
+#/*
+# * 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.
+# */
+version=older file
\ No newline at end of file
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-filtering/src/test/units-files/reflection-test-older.properties
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"