summaryrefslogtreecommitdiffstats
path: root/maven-plugins
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-29 20:20:57 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-29 20:20:57 +0000
commit4605e92f81bf149acb91f3fc84e5a5539a63e8aa (patch)
treea5a4ffaf9f5a68b5d271d33eb65024f91d621a75 /maven-plugins
parentc48b1d6d6b91fbc0d84f5d8fe7f78874849d06d4 (diff)
Filter out system packages in export from non-bundle jars such as xerces, xalan or saxon to avoid package conflicts
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@831078 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'maven-plugins')
-rw-r--r--maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java6
-rw-r--r--maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java16
2 files changed, 17 insertions, 5 deletions
diff --git a/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java b/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java
index 8c36cdaec2..04fa342161 100644
--- a/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java
+++ b/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/BundleUtil.java
@@ -162,7 +162,7 @@ public final class BundleUtil {
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 @@ public final class BundleUtil {
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 @@ public final class BundleUtil {
exports.append(export);
exports.append(',');
} else {
- logger.warning("Duplicate package skipped: " + export);
+ logger.warning("Duplicate or system package skipped: " + export);
}
}
diff --git a/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java b/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java
index 52821e5214..8435691019 100644
--- a/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java
+++ b/maven-plugins/trunk/maven-bundle-plugin/src/main/java/org/apache/tuscany/maven/bundle/plugin/ModuleBundlesBuildMojo.java
@@ -35,6 +35,7 @@ import java.io.InputStream;
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 @@ public class ModuleBundlesBuildMojo extends AbstractMojo {
* @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 @@ public class ModuleBundlesBuildMojo extends AbstractMojo {
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;
}