You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by dk...@apache.org on 2007/02/22 19:07:21 UTC
svn commit: r510609 -
/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
Author: dkulp
Date: Thu Feb 22 10:07:20 2007
New Revision: 510609
URL: http://svn.apache.org/viewvc?view=rev&rev=510609
Log:
Fix for MRRESOURCES-13
* In a forked lifecycle, the remote-resources are already a resource, make sure we don't try to copy them overtop of themselves
* Close some more streams in the event of failures
Modified:
maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
Modified: maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java?view=diff&rev=510609&r1=510608&r2=510609
==============================================================================
--- maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java (original)
+++ maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java Thu Feb 22 10:07:20 2007
@@ -48,6 +48,7 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Writer;
@@ -286,6 +287,7 @@
try
{
+
for ( Enumeration e = classLoader.getResources( BundleRemoteResourcesMojo.RESOURCES_MANIFEST );
e.hasMoreElements(); )
{
@@ -296,52 +298,59 @@
conn.connect();
reader = new InputStreamReader( conn.getInputStream() );
+
+ try {
- RemoteResourcesBundleXpp3Reader bundleReader = new RemoteResourcesBundleXpp3Reader();
-
- RemoteResourcesBundle bundle = bundleReader.read( reader );
-
- for ( Iterator i = bundle.getRemoteResources().iterator(); i.hasNext(); )
- {
- String bundleResource = (String) i.next();
-
- String projectResource = bundleResource;
-
-
- if ( projectResource.endsWith(".vm") )
- {
- projectResource = projectResource.substring( 0, projectResource.length() - 3 );
- }
-
- // Don't overwrite resource that are already being provided.
-
- File f = new File( outputDirectory, projectResource );
-
- FileUtils.mkdir( f.getParentFile().getAbsolutePath() );
-
- if ( !copyResourceIfExists(f, projectResource) )
+ RemoteResourcesBundleXpp3Reader bundleReader = new RemoteResourcesBundleXpp3Reader();
+
+ RemoteResourcesBundle bundle = bundleReader.read( reader );
+
+ for ( Iterator i = bundle.getRemoteResources().iterator(); i.hasNext(); )
{
- PrintWriter writer = new PrintWriter( new FileWriter( f ) );
-
- velocity.getEngine().mergeTemplate( bundleResource, context, writer );
-
- File appendedResourceFile = new File( appendedResourcesDirectory, projectResource);
- if ( appendedResourceFile.exists() )
+ String bundleResource = (String) i.next();
+
+ String projectResource = bundleResource;
+
+
+ if ( projectResource.endsWith(".vm") )
{
- FileReader freader = new FileReader( appendedResourceFile );
- BufferedReader breader = new BufferedReader( freader );
-
- String line = breader.readLine();
-
- while ( line != null )
- {
- writer.println( line );
- line = breader.readLine();
+ projectResource = projectResource.substring( 0, projectResource.length() - 3 );
+ }
+
+ // Don't overwrite resource that are already being provided.
+
+ File f = new File( outputDirectory, projectResource );
+
+ FileUtils.mkdir( f.getParentFile().getAbsolutePath() );
+
+ if ( !copyResourceIfExists(f, projectResource) )
+ {
+ PrintWriter writer = new PrintWriter( new FileWriter( f ) );
+
+ try {
+ velocity.getEngine().mergeTemplate( bundleResource, context, writer );
+
+ File appendedResourceFile = new File( appendedResourcesDirectory, projectResource);
+ if ( appendedResourceFile.exists() )
+ {
+ FileReader freader = new FileReader( appendedResourceFile );
+ BufferedReader breader = new BufferedReader( freader );
+
+ String line = breader.readLine();
+
+ while ( line != null )
+ {
+ writer.println( line );
+ line = breader.readLine();
+ }
+ }
+ } finally {
+ writer.close();
}
}
-
- writer.close();
}
+ } finally {
+ reader.close();
}
}
}
@@ -358,11 +367,6 @@
throw new MojoExecutionException( "Error rendering velocity resource.", e );
}
- finally
- {
- IOUtil.close( reader );
- }
-
Thread.currentThread().setContextClassLoader( old );
// ----------------------------------------------------------------------------
@@ -430,7 +434,8 @@
//TODO - really should use the resource includes/excludes and name mapping
File source = new File(resourceDirectory, relFileName);
- if ( source.exists() )
+ if ( source.exists()
+ && !source.equals(file))
{
//TODO - should use filters here
FileUtils.copyFile(source, file);