You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by lt...@apache.org on 2006/08/21 23:32:58 UTC

svn commit: r433368 - /maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java

Author: ltheussl
Date: Mon Aug 21 14:32:58 2006
New Revision: 433368

URL: http://svn.apache.org/viewvc?rev=433368&view=rev
Log:
PR: MAVEN-1636
Verify that local plugins directory exists and is writeable before extracting plugins.

Modified:
    maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java

Modified: maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java
URL: http://svn.apache.org/viewvc/maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java?rev=433368&r1=433367&r2=433368&view=diff
==============================================================================
--- maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java (original)
+++ maven/maven-1/core/trunk/src/java/org/apache/maven/plugin/PluginManager.java Mon Aug 21 14:32:58 2006
@@ -276,6 +276,8 @@
             log.debug( "Set user plugin directory to " + getUserPluginsDir().getAbsolutePath() );
         }
 
+        verifyUnpackedPluginsDir();
+
         // plugin profile at this point is all of the JAR files in the plugins directory and the unpacked plugins dir
         // future ideas: have installation, user (outside of the cache), and project (via deps) plugins
         // allow further customisation via a profile descriptor.
@@ -1219,4 +1221,29 @@
         Collections.sort( list );
         return list;
     }
+
+    private void verifyUnpackedPluginsDir()
+        throws MavenException
+    {
+        if ( !unpackedPluginsDir.exists() )
+        {
+            log.warn( getMessage( "directory.nonexistant.warning", unpackedPluginsDir ) );
+
+            if ( !unpackedPluginsDir.mkdirs() )
+            {
+                throw new MavenException( getMessage( "cannot.create.directory.warning", unpackedPluginsDir ) );
+            }
+        }
+
+        if ( !unpackedPluginsDir.isDirectory() )
+        {
+            throw new MavenException( getMessage( "not.directory.warning", unpackedPluginsDir ) );
+        }
+
+        if ( !unpackedPluginsDir.canWrite() )
+        {
+            throw new MavenException( getMessage( "not.writable.warning", unpackedPluginsDir ) );
+        }
+    }
+
 }