You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2011/02/15 08:50:21 UTC
svn commit: r1070797 -
/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java
Author: xuhaihong
Date: Tue Feb 15 07:50:21 2011
New Revision: 1070797
URL: http://svn.apache.org/viewvc?rev=1070797&view=rev
Log:
Add logic to handle the scenario when org.test and !org.test are configured at the same time.
Currently, the ! takes the higher precedence.
Modified:
geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java
Modified: geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java?rev=1070797&r1=1070796&r2=1070797&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-deployment/src/main/java/org/apache/geronimo/deployment/util/osgi/OSGiMetaDataBuilder.java Tue Feb 15 07:50:21 2011
@@ -118,15 +118,36 @@ public class OSGiMetaDataBuilder {
if (importPackageName.endsWith("*")) {
throw new IllegalConfigurationException("wildchar * could not be used in the import-package " + importPackageName + " without ! prefix");
}
- //If the users configured import packages, those will take the highest precedence.
- List<HeaderElement> elements = HeaderParser.parseHeader(importPackageName);
- for (HeaderElement headerElement : elements) {
- hiddenImportPackageNames.add(headerElement.getName());
+ }
+ }
+ environment.removeImportPackages(removedImportPackages);
+
+ //Use current filter configurations to re-validate existing import packages
+ //This is used to handle the scenario that org.test and !org.test are configured at the same time
+ removedImportPackages.clear();
+ for (String importPackageName : environment.getImportPackages()) {
+ if (hiddenImportPackageNames.contains(importPackageName)) {
+ removedImportPackages.add(importPackageName);
+ continue;
+ }
+ for (String hiddenImportPackageNamePrefix : hiddenImportPackageNamePrefixes) {
+ if (importPackageName.startsWith(hiddenImportPackageNamePrefix)) {
+ removedImportPackages.add(importPackageName);
+ break;
}
}
}
environment.removeImportPackages(removedImportPackages);
+ //If the users configured import packages, those will take the highest precedence.
+ //It has the same effect as !org.test is configured.
+ for (String importPackageName : environment.getImportPackages()) {
+ List<HeaderElement> elements = HeaderParser.parseHeader(importPackageName);
+ for (HeaderElement headerElement : elements) {
+ hiddenImportPackageNames.add(headerElement.getName());
+ }
+ }
+
Set<String> removedDynamicImportPackages = new HashSet<String>();
for (String initialDynamicImportPackageName : environment.getDynamicImportPackages()) {
String dynamicImportPackageName = initialDynamicImportPackageName.trim();