You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/11/08 18:30:59 UTC
svn commit: r472554 - in /maven/plugins/trunk/maven-assembly-plugin/src:
main/java/org/apache/maven/plugin/assembly/archive/
main/java/org/apache/maven/plugin/assembly/format/
main/java/org/apache/maven/plugin/assembly/utils/
test/java/org/apache/maven...
Author: jdcasey
Date: Wed Nov 8 09:30:55 2006
New Revision: 472554
URL: http://svn.apache.org/viewvc?view=rev&rev=472554
Log:
[MASSEMBLY-158] Applied patch, with modifications to centralize temp directory creation and add a shutdown hook to delete the temp directory.
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java?view=diff&rev=472554&r1=472553&r2=472554
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiver.java Wed Nov 8 09:30:55 2006
@@ -6,6 +6,7 @@
import org.apache.maven.plugin.assembly.archive.phase.AssemblyArchiverPhase;
import org.apache.maven.plugin.assembly.filter.ComponentsXmlArchiverFileFilter;
import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
+import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
import org.apache.maven.plugins.assembly.model.Assembly;
import org.codehaus.plexus.archiver.ArchiveFileFilter;
import org.codehaus.plexus.archiver.Archiver;
@@ -65,6 +66,8 @@
throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
{
String filename = fullName + "." + format;
+
+ AssemblyFileUtils.verifyTempDirectoryAvailability( configSource.getTemporaryRootDirectory(), getLogger() );
ComponentsXmlArchiverFileFilter componentsXmlFilter = new ComponentsXmlArchiverFileFilter();
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java?view=diff&rev=472554&r1=472553&r2=472554
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java Wed Nov 8 09:30:55 2006
@@ -52,6 +52,8 @@
File result = source;
File tempRoot = configSource.getTemporaryRootDirectory();
+
+ AssemblyFileUtils.verifyTempDirectoryAvailability( tempRoot, logger );
String sourceName = source.getName();
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java?view=diff&rev=472554&r1=472553&r2=472554
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java Wed Nov 8 09:30:55 2006
@@ -6,6 +6,8 @@
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import java.io.BufferedReader;
@@ -26,6 +28,29 @@
private AssemblyFileUtils()
{
+ }
+
+ public static void verifyTempDirectoryAvailability( final File tempDir, final Logger logger )
+ {
+ if (!tempDir.exists())
+ {
+ tempDir.mkdirs();
+
+ Runtime.getRuntime().addShutdownHook( new Thread( new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ FileUtils.deleteDirectory( tempDir );
+ }
+ catch ( IOException e )
+ {
+ logger.debug( "Failed to delete temp directory: " + tempDir, e );
+ }
+ }
+ } ) );
+ }
}
/**
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?view=diff&rev=472554&r1=472553&r2=472554
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Wed Nov 8 09:30:55 2006
@@ -19,6 +19,7 @@
import org.codehaus.plexus.archiver.war.WarArchiver;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.FileUtils;
import org.easymock.MockControl;
import java.io.File;
@@ -41,7 +42,8 @@
}
public void testCreateArchive()
- throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
+ throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException,
+ IOException
{
MockManager mm = new MockManager();
@@ -61,6 +63,12 @@
mm.add( csControl );
AssemblerConfigurationSource configSource = ( AssemblerConfigurationSource ) csControl.getMock();
+
+ File tempDir = fileManager.createTempDir();
+ FileUtils.deleteDirectory( tempDir );
+
+ configSource.getTemporaryRootDirectory();
+ csControl.setReturnValue( tempDir, MockControl.ZERO_OR_MORE );
File outDir = fileManager.createTempDir();
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java?view=diff&rev=472554&r1=472553&r2=472554
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/FileFormatterTest.java Wed Nov 8 09:30:55 2006
@@ -45,6 +45,26 @@
fileManager.cleanUp();
}
+ public void testTemporaryRootDirectoryNotExist()
+ throws IOException, AssemblyFormattingException
+ {
+ File basedir = fileManager.createTempDir();
+ File tempRoot = new File(basedir, "tempdir");
+ configSource.getTemporaryRootDirectory();
+ configSourceControl.setReturnValue( tempRoot );
+
+ File file = fileManager.createFile( basedir, "one.txt", "This is a\ntest." );
+
+ mockManager.replayAll();
+
+ File result = new FileFormatter( configSource, logger ).format( file, false, "dos" );
+
+ assertTrue( !file.equals(result) );
+
+
+ mockManager.verifyAll();
+ }
+
public void testShouldNotTransformOneFile()
throws IOException, AssemblyFormattingException
{