You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2010/01/25 23:45:17 UTC

svn commit: r903004 - /sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java

Author: justin
Date: Mon Jan 25 22:45:16 2010
New Revision: 903004

URL: http://svn.apache.org/viewvc?rev=903004&view=rev
Log:
SLING-1323 - adding "bundlesToRemove" option

Modified:
    sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java

Modified: sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java?rev=903004&r1=903003&r2=903004&view=diff
==============================================================================
--- sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java (original)
+++ sling/trunk/maven/maven-launchpad-plugin/src/main/java/org/apache/sling/maven/projectsupport/PreparePackageMojo.java Mon Jan 25 22:45:16 2010
@@ -23,7 +23,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
 
 /**
@@ -45,6 +45,13 @@
 	private ArtifactDefinition[] additionalBundles;
 
 	/**
+	 * Bundles which should be removed from the project's bundles directory.
+	 *
+	 * @parameter
+	 */
+	private ArtifactDefinition[] bundlesToRemove;
+
+	/**
 	 * If true, install the default bundles.
 	 *
 	 * @parameter default-value="true"
@@ -97,11 +104,30 @@
 		}
 		copyAdditionalBundles();
 		copyWebSupportBundle();
+		removeBundles();
 		if (JAR.equals(packaging)) {
 			unpackBaseArtifact();
 		}
 	}
 
+	private void removeBundles() throws MojoExecutionException {
+	    if (bundlesToRemove != null) {
+	        File bundleBaseDir = new File(getOutputDirectory(), String.format(
+	                "%s/%s", baseDestination, bundlesDirectory));
+
+	        for (ArtifactDefinition def : bundlesToRemove) {
+	            DirectoryScanner scanner = new DirectoryScanner();
+	            scanner.setBasedir(bundleBaseDir);
+	            scanner.setIncludes(new String[] { "**/" + def.getArtifactId() + "-*.*"});
+	            scanner.scan();
+	            for (String toRemove : scanner.getIncludedFiles()) {
+	                getLog().info("Deleting " + toRemove);
+	                new File(toRemove).delete();
+	            }
+	        }
+	    }
+	}
+
 	private void copyAdditionalBundles() throws MojoExecutionException {
 		if (additionalBundles != null) {
 			for (int i = 0; i < additionalBundles.length; i++) {