You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/11/03 07:04:08 UTC
svn commit: r591556 - in /maven/plugins/trunk/maven-assembly-plugin/src:
main/java/org/apache/maven/plugin/assembly/archive/task/
main/java/org/apache/maven/plugin/assembly/format/
test/java/org/apache/maven/plugin/assembly/format/
Author: brett
Date: Fri Nov 2 23:04:07 2007
New Revision: 591556
URL: http://svn.apache.org/viewvc?rev=591556&view=rev
Log:
add runtime deletion of temporary files. Add deletion safeguards on tests, though the tearDown method should take care of it already, because there are some being left behind on the CI machine
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java?rev=591556&r1=591555&r2=591556&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java Fri Nov 2 23:04:07 2007
@@ -1,10 +1,5 @@
package org.apache.maven.plugin.assembly.archive.task;
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugin.assembly.archive.ArchiveCreationException;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
@@ -16,6 +11,12 @@
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
public class AddFileSetsTask
implements ArchiverTask
@@ -105,6 +106,7 @@
if ( fileSetDir.exists() )
{
+ File origFileSetDir = fileSetDir;
try
{
fileSetDir = fileSetFormatter.formatFileSetForAssembly( fileSetDir, fileSet );
@@ -117,18 +119,36 @@
logger.debug( "Adding file-set from directory: '" + fileSetDir.getAbsolutePath() + "'\nassembly output directory is: \'" + destDirectory + "\'" );
- AddDirectoryTask task = new AddDirectoryTask( fileSetDir );
+ try
+ {
+ AddDirectoryTask task = new AddDirectoryTask( fileSetDir );
- task.setDirectoryMode( TypeConversionUtils.modeToInt( fileSet.getDirectoryMode(), logger ) );
- task.setFileMode( TypeConversionUtils.modeToInt( fileSet.getFileMode(), logger ) );
- task.setUseDefaultExcludes( fileSet.isUseDefaultExcludes() );
- List excludes = fileSet.getExcludes();
- excludes.add( "**/*.filtered" );
- task.setExcludes( excludes );
- task.setIncludes( fileSet.getIncludes() );
- task.setOutputDirectory( destDirectory );
+ task.setDirectoryMode( TypeConversionUtils.modeToInt( fileSet.getDirectoryMode(), logger ) );
+ task.setFileMode( TypeConversionUtils.modeToInt( fileSet.getFileMode(), logger ) );
+ task.setUseDefaultExcludes( fileSet.isUseDefaultExcludes() );
+ List excludes = fileSet.getExcludes();
+ excludes.add( "**/*.filtered" );
+ task.setExcludes( excludes );
+ task.setIncludes( fileSet.getIncludes() );
+ task.setOutputDirectory( destDirectory );
- task.execute( archiver, configSource );
+ task.execute( archiver, configSource );
+ }
+ finally
+ {
+ try
+ {
+ if ( !fileSetDir.equals( origFileSetDir ) )
+ {
+ FileUtils.deleteDirectory( fileSetDir );
+ }
+ }
+ catch ( IOException e )
+ {
+ // ignore - we've just left something in the temporary directory
+ logger.warn( "Unable to delete temporary directory: " + fileSetDir + ": " + e.getMessage() );
+ }
+ }
}
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java?rev=591556&r1=591555&r2=591556&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileSetFormatter.java Fri Nov 2 23:04:07 2007
@@ -1,8 +1,5 @@
package org.apache.maven.plugin.assembly.format;
-import java.io.File;
-import java.io.IOException;
-
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
import org.apache.maven.shared.model.fileset.FileSet;
@@ -10,6 +7,9 @@
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.FileUtils;
+import java.io.File;
+import java.io.IOException;
+
public class FileSetFormatter
{
@@ -26,8 +26,6 @@
public File formatFileSetForAssembly( File archiveBaseDir, org.apache.maven.plugin.assembly.model.FileSet set )
throws AssemblyFormattingException, IOException
{
- File formattedDir = archiveBaseDir;
-
String lineEndingHint = set.getLineEnding();
String lineEnding = AssemblyFileUtils.getLineEndingCharacters( lineEndingHint );
@@ -40,11 +38,6 @@
fileSet.setDirectory( set.getDirectory() );
fileSet.setIncludes( set.getIncludes() );
- formattedDir = FileUtils.createTempFile( "fileSetFormatter.", ".tmp", configSource.getTemporaryRootDirectory() );
-
- formattedDir.delete();
- formattedDir.mkdirs();
-
fileSet.setExcludes( set.getExcludes() );
fileSet.setUseDefaultExcludes( true );
@@ -55,28 +48,58 @@
if ( ( files == null ) || ( files.length == 0 ) )
{
logger.info( "No files selected for line-ending conversion. Skipping: " + fileSet.getDirectory() );
-
- formattedDir.delete();
-
- return archiveBaseDir;
}
-
- FileFormatter fileFormatter = new FileFormatter( configSource, logger );
- for ( int i = 0; i < files.length; i++ )
+ else
{
- String file = files[i];
-
- File targetFile = new File( formattedDir, file );
+ File formattedDir =
+ FileUtils.createTempFile( "fileSetFormatter.", ".tmp", configSource.getTemporaryRootDirectory() );
- targetFile.getParentFile().mkdirs();
+ formattedDir.delete();
+ formattedDir.mkdirs();
- File sourceFile = new File( archiveBaseDir, file );
- sourceFile = fileFormatter.format( sourceFile, set.isFiltered(), lineEndingHint, formattedDir );
- AssemblyFileUtils.copyFile(sourceFile,targetFile);
+ FileFormatter fileFormatter = new FileFormatter( configSource, logger );
+ for ( int i = 0; i < files.length; i++ )
+ {
+ String file = files[i];
+
+ File targetFile = new File( formattedDir, file );
+
+ targetFile.getParentFile().mkdirs();
+
+ File sourceFile = new File( archiveBaseDir, file );
+ try
+ {
+ sourceFile = fileFormatter.format( sourceFile, set.isFiltered(), lineEndingHint, formattedDir );
+ AssemblyFileUtils.copyFile( sourceFile, targetFile );
+ }
+ catch ( AssemblyFormattingException e )
+ {
+ deleteDirectory( formattedDir );
+ throw e;
+ }
+ catch ( IOException e )
+ {
+ deleteDirectory( formattedDir );
+ throw e;
+ }
+ }
+ return formattedDir;
}
}
- return formattedDir;
+ return archiveBaseDir;
+ }
+
+ private static void deleteDirectory( File formattedDir )
+ {
+ try
+ {
+ FileUtils.deleteDirectory( formattedDir );
+ }
+ catch ( IOException e1 )
+ {
+ // ignore
+ }
}
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java?rev=591556&r1=591555&r2=591556&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileSetFormatterTest.java Fri Nov 2 23:04:07 2007
@@ -1,12 +1,6 @@
package org.apache.maven.plugin.assembly.format;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
import junit.framework.TestCase;
-
import org.apache.maven.model.Model;
import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
import org.apache.maven.plugin.assembly.model.FileSet;
@@ -16,8 +10,14 @@
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.codehaus.plexus.util.FileUtils;
import org.easymock.MockControl;
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
public class FileSetFormatterTest
extends TestCase
{
@@ -122,8 +122,15 @@
assertFalse( dir.equals( result ) );
- fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
- fileManager.assertFileContents( result, filename2, "Hello\r\nThis is also a test.\r\n" );
+ try
+ {
+ fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
+ fileManager.assertFileContents( result, filename2, "Hello\r\nThis is also a test.\r\n" );
+ }
+ finally
+ {
+ FileUtils.deleteDirectory( result );
+ }
}
public void testShouldConvertLineEndingsOnOneFileWithAnotherExplicitlyExcluded()
@@ -149,8 +156,15 @@
assertFalse( dir.equals( result ) );
- fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
- fileManager.assertFileExistence( result, filename2, false );
+ try
+ {
+ fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
+ fileManager.assertFileExistence( result, filename2, false );
+ }
+ finally
+ {
+ FileUtils.deleteDirectory( result );
+ }
}
public void testShouldConvertLineEndingsOnOneExplicitlyIncludedFile()
@@ -175,9 +189,15 @@
File result = formatter.formatFileSetForAssembly( dir, fs );
assertFalse( dir.equals( result ) );
-
- fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
- fileManager.assertFileExistence( result, filename2, false );
+ try
+ {
+ fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
+ fileManager.assertFileExistence( result, filename2, false );
+ }
+ finally
+ {
+ FileUtils.deleteDirectory( result );
+ }
}
public void testShouldConvertLineEndingsOnOneFileAndIgnoreFileWithinDefaultExcludedDir()
@@ -202,11 +222,19 @@
assertFalse( dir.equals( result ) );
- fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
- fileManager.assertFileExistence( result, filename2, false );
+ try
+ {
+ fileManager.assertFileContents( result, filename1, "Hello\r\nThis is a test.\r\n" );
+ fileManager.assertFileExistence( result, filename2, false );
+ }
+ finally
+ {
+ FileUtils.deleteDirectory( result );
+ }
}
- public void testShouldFilterSeveralFiles() throws IOException, AssemblyFormattingException
+ public void testShouldFilterSeveralFiles()
+ throws IOException, AssemblyFormattingException
{
File basedir = fileManager.createTempDir();
@@ -231,10 +259,19 @@
FileSetFormatter formatter = new FileSetFormatter( configSource, logger );
File result = formatter.formatFileSetForAssembly( basedir, fs );
- fileManager.assertFileContents( result, filename1, "This is the filtered artifactId: artifact." );
- fileManager.assertFileContents( result, filename2, "This is the filtered 'foo' property: bar." );
+ assertFalse( result.equals( basedir ) );
- mockManager.verifyAll();
+ try
+ {
+ fileManager.assertFileContents( result, filename1, "This is the filtered artifactId: artifact." );
+ fileManager.assertFileContents( result, filename2, "This is the filtered 'foo' property: bar." );
+
+ mockManager.verifyAll();
+ }
+ finally
+ {
+ FileUtils.deleteDirectory( result );
+ }
}
private void enableBasicFilteringConfiguration( File basedir, List filterFilenames )