You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by jw...@apache.org on 2013/02/22 21:25:40 UTC
svn commit: r1449199 -
/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
Author: jwross
Date: Fri Feb 22 20:25:40 2013
New Revision: 1449199
URL: http://svn.apache.org/r1449199
Log:
Add dynamic imports to sharing policy when Import-Package absent.
Fixes an issue where dynamic package imports added to a woven class were not added to a subsystem's sharing policy
if the subsystem had no Import-Package header, resulting in a NoClassDefFoundError.
Modified:
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java?rev=1449199&r1=1449198&r2=1449199&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResource.java Fri Feb 22 20:25:40 2013
@@ -723,15 +723,7 @@ public class SubsystemResource implement
}
private void setImportIsolationPolicy(RegionFilterBuilder builder, ImportPackageHeader header) throws InvalidSyntaxException {
- if (header == null)
- return;
String policy = RegionFilter.VISIBLE_PACKAGE_NAMESPACE;
- for (ImportPackageHeader.Clause clause : header.getClauses()) {
- ImportPackageRequirement requirement = new ImportPackageRequirement(clause, this);
- String filter = requirement.getDirectives().get(ImportPackageRequirement.DIRECTIVE_FILTER);
- builder.allow(policy, filter);
- }
-
// work around https://www.osgi.org/bugzilla/show_bug.cgi?id=144
// In the first instance, what if the various weaving services were to have a property,
// osgi.woven.packages, that was a comma separated list of packages that might be woven
@@ -740,6 +732,13 @@ public class SubsystemResource implement
for (String pkg : wovenPackages) {
builder.allow(policy, "(osgi.wiring.package=" + pkg + ")");
}
+ if (header == null)
+ return;
+ for (ImportPackageHeader.Clause clause : header.getClauses()) {
+ ImportPackageRequirement requirement = new ImportPackageRequirement(clause, this);
+ String filter = requirement.getDirectives().get(ImportPackageRequirement.DIRECTIVE_FILTER);
+ builder.allow(policy, filter);
+ }
}
// First pass at this: really just a sketch.