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
     {