You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/10/29 21:20:57 UTC

svn commit: r831078 - in /tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin: BundleUtil.java ModuleBundlesBuildMojo.java

Author: rfeng
Date: Thu Oct 29 20:20:57 2009
New Revision: 831078

URL: http://svn.apache.org/viewvc?rev=831078&view=rev
Log:
Filter out system packages in export from non-bundle jars such as xerces, xalan or saxon to avoid package conflicts

Modified:
    tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java
    tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java

Modified: tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java
URL: http://svn.apache.org/viewvc/tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java?rev=831078&r1=831077&r2=831078&view=diff
==============================================================================
--- tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java (original)
+++ tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java Thu Oct 29 20:20:57 2009
@@ -162,7 +162,7 @@
             if (env == null) {
                 env = "JavaSE-1.6";
             }
-            exportedPackages.removeAll(getSystemPackages(env));
+            Set<String> sysPackages = getSystemPackages(env);
 
             // Generate export-package and import-package declarations
             StringBuffer exports = new StringBuffer();
@@ -170,7 +170,7 @@
             Set<String> pkgs = new HashSet<String>();
             for (String export : exportedPackages) {
                 String packageName = packageName(export);
-                if (!pkgs.contains(packageName)) {
+                if (!pkgs.contains(packageName) && !sysPackages.contains(packageName)) {
                     // Add corresponding import declaration
                     if (!"META-INF.services".equals(packageName)) {
                         imports.append(export);
@@ -180,7 +180,7 @@
                     exports.append(export);
                     exports.append(',');
                 } else {
-                    logger.warning("Duplicate package skipped: " + export);
+                    logger.warning("Duplicate or system package skipped: " + export);
                 }
             }
 

Modified: tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java
URL: http://svn.apache.org/viewvc/tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java?rev=831078&r1=831077&r2=831078&view=diff
==============================================================================
--- tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java (original)
+++ tuscany/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java Thu Oct 29 20:20:57 2009
@@ -35,6 +35,7 @@
 import java.io.PrintStream;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -279,6 +280,11 @@
      * @parameter default-value="tuscany-sca-equinox-manifest.jar"
      */
     private String equinoxManifestJarName = "tuscany-sca-equinox-manifest.jar";
+    
+    /**
+     * @parameter default-value="jar,bundle"
+     */
+    private String artifactTypes;
 
     /**
      * @parameter default-value="true"
@@ -505,9 +511,15 @@
                     continue;
                 }
 
+                if (artifactTypes == null) {
+                    artifactTypes = "jar,bundle";
+                }
+                String types[] = artifactTypes.trim().split("( |\t|\n|\r|\f|,)+");
+                Set<String> typeSet = new HashSet<String>(Arrays.asList(types));
+
                 // Only consider JAR and WAR files
-                if (!"jar".equals(artifact.getType()) && !"bundle".equals(artifact.getType())
-                    && !"war".equals(artifact.getType())) {
+                if (!typeSet.contains(artifact.getType())) {
+                    log.debug("Artifact with unknown type is skipped: " + artifact);
                     continue;
                 }