You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2013/06/30 14:55:41 UTC

svn commit: r1498108 - in /maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war: AbstractWarMojo.java packaging/AbstractWarPackagingTask.java packaging/WarPackagingContext.java

Author: olamy
Date: Sun Jun 30 12:55:41 2013
New Revision: 1498108

URL: http://svn.apache.org/r1498108
Log:
[MWAR-280] Big performance hit in overlay

Modified:
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java?rev=1498108&r1=1498107&r2=1498108&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java Sun Jun 30 12:55:41 2013
@@ -323,6 +323,14 @@ public abstract class AbstractWarMojo
     private boolean supportMultiLineFiltering = false;
 
     /**
+     * use jvmChmod rather that cli chmod and forking process
+     * @since 2.4
+     */
+    @Parameter(property = "maven.war.useJvmChmod", defaultValue = "useJvmChmod" )
+    private boolean useJvmChmod;
+
+
+    /**
      * The archive configuration to use.
      * See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven Archiver Reference</a>.
      */
@@ -486,7 +494,8 @@ public abstract class AbstractWarMojo
                                                                             defaultFilterWrappers,
                                                                             getNonFilteredFileExtensions(),
                                                                             filteringDeploymentDescriptors,
-                                                                            this.artifactFactory, resourceEncoding);
+                                                                            this.artifactFactory, resourceEncoding,
+                                                                            useJvmChmod);
         for ( WarPackagingTask warPackagingTask : packagingTasks )
         {
             warPackagingTask.performPackaging( context );
@@ -576,10 +585,12 @@ public abstract class AbstractWarMojo
 
         private boolean filteringDeploymentDescriptors;
 
+        private boolean useJvmChmod = true;
+
         public DefaultWarPackagingContext( File webappDirectory, final WebappStructure webappStructure,
                                            final OverlayManager overlayManager, List<FileUtils.FilterWrapper> filterWrappers,
                                            List<String> nonFilteredFileExtensions, boolean filteringDeploymentDescriptors,
-                                           ArtifactFactory artifactFactory, String resourceEncoding )
+                                           ArtifactFactory artifactFactory, String resourceEncoding, boolean useJvmChmod )
         {
             this.webappDirectory = webappDirectory;
             this.webappStructure = webappStructure;
@@ -596,6 +607,7 @@ public abstract class AbstractWarMojo
             {
                 webappStructure.getStructure( overlayId );
             }
+            this.useJvmChmod = useJvmChmod;
         }
 
         public MavenProject getProject()
@@ -712,6 +724,11 @@ public abstract class AbstractWarMojo
         {
             return resourceEncoding;
         }
+
+        public boolean isUseJvmChmod()
+        {
+            return useJvmChmod;
+        }
     }
 
     public MavenProject getProject()

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java?rev=1498108&r1=1498107&r2=1498108&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/AbstractWarPackagingTask.java Sun Jun 30 12:55:41 2013
@@ -259,6 +259,7 @@ public abstract class AbstractWarPackagi
         {
             UnArchiver unArchiver = context.getArchiverManager().getUnArchiver( archiveExt );
             unArchiver.setSourceFile( file );
+            unArchiver.setUseJvmChmod( context.isUseJvmChmod() );
             unArchiver.setDestDirectory( unpackDirectory );
             unArchiver.setOverwrite( true );
             unArchiver.extract();

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java?rev=1498108&r1=1498107&r2=1498108&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/WarPackagingContext.java Sun Jun 30 12:55:41 2013
@@ -203,4 +203,11 @@ public interface WarPackagingContext
      * @since 2.3
      */
     String getResourceEncoding();
+
+    /**
+     *
+     * @return to use jvmChmod rather than forking chmod cli
+     * @since 2.4
+     */
+    boolean isUseJvmChmod();
 }