Author: jsdelfino
Date: Thu Oct 23 11:28:14 2008
New Revision: 707438

URL: http://svn.apache.org/viewvc?rev=707438&view=rev
Log:
Minor fixes to the Maven bundle plugin. Fixed the algorithm determining what 
directories need to be excluded from the distro. Added an 'includeGroupIds' 
configruation property.

Modified:
    
tuscany/branches/sca-equinox/tools/maven/maven-bundle-plugin/src/main/java/org/apache/tuscany/sca/tools/bundle/plugin/ModuleBundlesBuildMojo.java

Modified: 
tuscany/branches/sca-equinox/tools/maven/maven-bundle-plugin/src/main/java/org/apache/tuscany/sca/tools/bundle/plugin/ModuleBundlesBuildMojo.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/tools/maven/maven-bundle-plugin/src/main/java/org/apache/tuscany/sca/tools/bundle/plugin/ModuleBundlesBuildMojo.java?rev=707438&r1=707437&r2=707438&view=diff
==============================================================================
--- 
tuscany/branches/sca-equinox/tools/maven/maven-bundle-plugin/src/main/java/org/apache/tuscany/sca/tools/bundle/plugin/ModuleBundlesBuildMojo.java
 (original)
+++ 
tuscany/branches/sca-equinox/tools/maven/maven-bundle-plugin/src/main/java/org/apache/tuscany/sca/tools/bundle/plugin/ModuleBundlesBuildMojo.java
 Thu Oct 23 11:28:14 2008
@@ -78,6 +78,13 @@
     private String[] excludeGroupIds;
 
     /**
+     * Directories containing groupids to include.
+     * 
+     * @parameter
+     */
+    private String[] includeGroupIds;
+
+    /**
      * Set to true to generate a PDE target platform configuration.
      * 
      *  @parameter
@@ -105,15 +112,23 @@
             }
             root.mkdirs();
             
-            // Build sets of exclude directories and groupids
+            // Build sets of exclude directories and included/excluded/groupids
             Set<String> excludedFileNames = new HashSet<String>(); 
             if (excludeDirectories != null) {
                 for (File f: excludeDirectories) {
-                    for (String n: f.list()) {
-                        excludedFileNames.add(n);
+                    if (f.isDirectory()) {
+                        for (String n: f.list()) {
+                            excludedFileNames.add(n);
+                        }
                     }
                 }
             }
+            Set<String> includedGroupIds = new HashSet<String>();
+            if (includeGroupIds != null) {
+                for (String g: includeGroupIds) {
+                    includedGroupIds.add(g);
+                }
+            }
             Set<String> excludedGroupIds = new HashSet<String>();
             if (excludeGroupIds != null) {
                 for (String g: excludeGroupIds) {
@@ -139,11 +154,17 @@
                     continue;
                 }
                 
-                // Exclude artifact if its groupId is excluded
+                // Exclude artifact if its groupId is excluded or if it's not 
included
                 if (excludedGroupIds.contains(artifact.getGroupId())) {
                     log.debug("Artifact groupId is excluded: " + artifact);
                     continue;
                 }
+                if (!includedGroupIds.isEmpty()) {
+                    if (!includedGroupIds.contains(artifact.getGroupId())) {
+                        log.debug("Artifact groupId is not included: " + 
artifact);
+                        continue;
+                    }
+                }
                 
                 File artifactFile = artifact.getFile();
                 if (!artifactFile.exists()) {
@@ -151,12 +172,6 @@
                     continue;
                 }
                 
-                // Exclude artifact if its file name is excluded
-                if (excludedFileNames.contains(artifactFile.getName())) {
-                    log.debug("Artifact file is excluded: " + artifact);
-                    continue;
-                }
-
                 if (log.isDebugEnabled()) {
                     log.debug("Processing artifact: " + artifact);
                 }
@@ -171,6 +186,12 @@
                 
                 if (bundleName != null) {
                     
+                    // Exclude artifact if its file name is excluded
+                    if (excludedFileNames.contains(artifactFile.getName())) {
+                        log.debug("Artifact file is excluded: " + artifact);
+                        continue;
+                    }
+
                     // Copy an OSGi bundle as is 
                     log.info("Adding OSGi bundle artifact: " + artifact);
                     copyFile(artifactFile, root);
@@ -178,6 +199,12 @@
                     
                 } else if ("war".equals(artifact.getType())) {
                     
+                    // Exclude artifact if its file name is excluded
+                    if (excludedFileNames.contains(artifactFile.getName())) {
+                        log.debug("Artifact file is excluded: " + artifact);
+                        continue;
+                    }
+
                     // Copy a WAR as is 
                     log.info("Adding WAR artifact: " + artifact);
                     copyFile(artifactFile, root);
@@ -185,6 +212,14 @@
                     
                 } else {
                     
+                    File dir = new File(root, 
artifactFile.getName().substring(0, artifactFile.getName().length() - 4));
+
+                    // Exclude artifact if its file name is excluded
+                    if (excludedFileNames.contains(dir.getName())) {
+                        log.debug("Artifact file is excluded: " + artifact);
+                        continue;
+                    }
+                    
                     // Create a bundle directory for a non-OSGi JAR
                     log.info("Adding JAR artifact: " + artifact);
                     String version = 
BundleUtil.version(artifactFile.getPath());
@@ -193,7 +228,6 @@
                     jarFiles.add(artifactFile);
                     String symbolicName = (artifact.getGroupId() + "." + 
artifact.getArtifactId()).replace('-', '.');
                     Manifest mf = BundleUtil.libraryManifest(jarFiles, 
symbolicName + "_" + version, symbolicName, version, null);
-                    File dir = new File(root, 
artifactFile.getName().substring(0, artifactFile.getName().length() - 4));
                     File file = new File(dir, "META-INF");
                     file.mkdirs();
                     file = new File(file, "MANIFEST.MF");


Reply via email to