You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:17:29 UTC

[sling-maven-launchpad-plugin] 04/45: SLING-2662 : Enhance run mode handling

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag maven-launchpad-plugin-2.3.4
in repository https://gitbox.apache.org/repos/asf/sling-maven-launchpad-plugin.git

commit e032914e752837c3a07283847aa20609d505f9ea
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Nov 15 08:04:01 2012 +0000

    SLING-2662 :  Enhance run mode handling
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/maven/maven-launchpad-plugin@1409683 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  5 +++
 .../projectsupport/AbstractBundleListMojo.java     | 37 ++++++++++++++++++++++
 .../AbstractUsingBundleListMojo.java               | 19 ++++++-----
 .../maven/projectsupport/AttachBundleListMojo.java |  4 +--
 .../AttachPartialBundleListMojo.java               |  4 +--
 .../maven/projectsupport/PreparePackageMojo.java   |  6 ++--
 6 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/pom.xml b/pom.xml
index 04a33dd..f0e0ff9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,6 +148,11 @@
             <version>1.5.15</version>
         </dependency>
         <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.4</version>
+        </dependency>
+        <dependency>
             <groupId>org.jdom</groupId>
             <artifactId>jdom</artifactId>
             <version>1.1</version>
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/AbstractBundleListMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/AbstractBundleListMojo.java
index eca43fe..a2f5566 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/AbstractBundleListMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/AbstractBundleListMojo.java
@@ -17,6 +17,8 @@
 package org.apache.sling.maven.projectsupport;
 
 import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
@@ -35,6 +37,7 @@ import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
+import org.codehaus.plexus.util.SelectorUtils;
 import org.codehaus.plexus.util.StringUtils;
 
 public abstract class AbstractBundleListMojo extends AbstractMojo {
@@ -219,4 +222,38 @@ public abstract class AbstractBundleListMojo extends AbstractMojo {
                 return artifact;
             }
 
+    /**
+     * Helper method to copy a whole directory
+     */
+    protected void copyDirectory(final File source, final File target, final String[] includes, final String[] excludes)
+    throws IOException {
+        final String prefix = source.getAbsolutePath() + File.separatorChar;
+        final int prefixLength = prefix.length();
+        org.apache.commons.io.FileUtils.copyDirectory(source, target, new FileFilter() {
+
+            public boolean accept(final File file) {
+                final String path = file.getAbsolutePath().substring(prefixLength).replace(File.separatorChar, '/');
+                if ( includes != null ) {
+                    boolean matched = false;
+                    for(int i = 0; i<includes.length && !matched; i++) {
+                        if ( SelectorUtils.matchPath(includes[i], path)) {
+                            matched = true;
+                        }
+                    }
+                    if ( !matched ) {
+                        return false;
+                    }
+                }
+                if ( excludes != null ) {
+                    for(final String pattern:excludes) {
+                        if ( SelectorUtils.matchPath(pattern, path)) {
+                            return false;
+                        }
+                    }
+                }
+                return true;
+            }
+        });
+    }
+
 }
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java
index 5640cba..41e45a4 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/AbstractUsingBundleListMojo.java
@@ -38,7 +38,6 @@ import org.apache.sling.maven.projectsupport.bundlelist.v1_0_0.BundleList;
 import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.zip.ZipUnArchiver;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
@@ -293,8 +292,7 @@ public abstract class AbstractUsingBundleListMojo extends AbstractBundleListMojo
         }
         // copy own config files
         if ( this.overlayConfigDir != null && super.getConfigDirectory().exists() ) {
-            FileUtils.copyDirectory(super.getConfigDirectory(), this.overlayConfigDir,
-                    null, FileUtils.getDefaultExcludesAsString());
+            copyDirectory(super.getConfigDirectory(), this.overlayConfigDir, null, FileUtils.getDefaultExcludes());
         }
     }
 
@@ -337,15 +335,20 @@ public abstract class AbstractUsingBundleListMojo extends AbstractBundleListMojo
                         this.tempConfigDir.mkdirs();
                         this.overlayConfigDir = this.tempConfigDir;
                     }
-                    String excludes = FileUtils.getDefaultExcludesAsString();
+                    final String[] defaultExcludes = FileUtils.getDefaultExcludes();
+                    String[] excludes;
                     if ( this.configExcludes != null ) {
-                        excludes = excludes + ',' + StringUtils.join(this.configExcludes, ",");
+                        excludes = new String[defaultExcludes.length + this.configExcludes.length];
+                        System.arraycopy(defaultExcludes, 0, excludes, 0, defaultExcludes.length);
+                        System.arraycopy(this.configExcludes, 0, excludes, defaultExcludes.length, this.configExcludes.length);
+                    } else {
+                        excludes = defaultExcludes;
                     }
-                    String includes = null;
+                    String[] includes = null;
                     if ( this.configIncludes != null ) {
-                        includes = StringUtils.join(this.configIncludes, ",");
+                        includes = this.configIncludes;
                     }
-                    FileUtils.copyDirectory(configDir, this.overlayConfigDir,
+                    copyDirectory(configDir, this.overlayConfigDir,
                                     includes, excludes);
                 }
             } catch (final ArchiverException ae) {
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/AttachBundleListMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/AttachBundleListMojo.java
index 6f40dc0..fe9d538 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/AttachBundleListMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/AttachBundleListMojo.java
@@ -142,8 +142,8 @@ public class AttachBundleListMojo extends AbstractUsingBundleListMojo {
         if ( this.checkFile(this.getConfigDirectory()) ) {
             final File configDir = new File(this.configOutputDir, "config");
             configDir.mkdirs();
-            FileUtils.copyDirectory(this.getConfigDirectory(), configDir,
-                    null, FileUtils.getDefaultExcludesAsString());
+            copyDirectory(this.getConfigDirectory(), configDir,
+                    null, FileUtils.getDefaultExcludes());
         }
         final File destFile = new File(this.configOutputDir.getParent(), this.configOutputDir.getName() + ".zip");
         zipArchiver.setDestFile(destFile);
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/AttachPartialBundleListMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/AttachPartialBundleListMojo.java
index f909a35..2f4caf5 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/AttachPartialBundleListMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/AttachPartialBundleListMojo.java
@@ -178,8 +178,8 @@ public class AttachPartialBundleListMojo extends AbstractBundleListMojo {
         if ( this.checkFile(this.getConfigDirectory()) ) {
             final File configDir = new File(this.configOutputDir, "config");
             configDir.mkdirs();
-            FileUtils.copyDirectory(this.getConfigDirectory(), configDir,
-                    null, FileUtils.getDefaultExcludesAsString());
+            copyDirectory(this.getConfigDirectory(), configDir,
+                    null, FileUtils.getDefaultExcludes());
         }
         final File destFile = new File(this.configOutputDir.getParent(), this.configOutputDir.getName() + ".zip");
         zipArchiver.setDestFile(destFile);
diff --git a/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java b/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
index 378857c..5a541cd 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
@@ -107,6 +107,7 @@ public class PreparePackageMojo extends AbstractLaunchpadFrameworkMojo {
      */
     private JarArchiver jarArchiver;
 
+    @Override
     public void executeWithArtifacts() throws MojoExecutionException, MojoFailureException {
         copyBaseArtifact();
         copyBundles(getInitializedBundleList(), getOutputDirectory());
@@ -116,6 +117,7 @@ public class PreparePackageMojo extends AbstractLaunchpadFrameworkMojo {
         }
     }
 
+    @Override
     protected void initArtifactDefinitions(Properties dependencies) {
         if (base == null) {
             base = new ArtifactDefinition();
@@ -278,7 +280,7 @@ public class PreparePackageMojo extends AbstractLaunchpadFrameworkMojo {
     }
 
     private Artifact getBaseDependency() {
-        return (Artifact) project.getArtifactMap().get(
+        return project.getArtifactMap().get(
                 base.getGroupId() + ":" + base.getArtifactId());
     }
 
@@ -303,7 +305,7 @@ public class PreparePackageMojo extends AbstractLaunchpadFrameworkMojo {
 
     private void copyConfigurationFiles() throws MojoExecutionException {
         try {
-            FileUtils.copyDirectory(this.getConfigDirectory(), new File(getOutputDirectory(), CONFIG_PATH_PREFIX), null, FileUtils.getDefaultExcludesAsString());
+            copyDirectory(this.getConfigDirectory(), new File(getOutputDirectory(), CONFIG_PATH_PREFIX), null, FileUtils.getDefaultExcludes());
         } catch (IOException e) {
             throw new MojoExecutionException("Unable to copy configuration files", e);
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.