aries-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jwr...@apache.org
Subject svn commit: r1738986 - /aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java
Date Wed, 13 Apr 2016 18:51:20 GMT
Author: jwross
Date: Wed Apr 13 18:51:20 2016
New Revision: 1738986

URL: http://svn.apache.org/viewvc?rev=1738986&view=rev
Log:
[ARIES-1523] Application with fragment in archive and host in OBR will fail to resolve.

If both the provider and requirer of a capability are content of the same subsystem, then
the capability will be visible.

Modified:
    aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java

Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java?rev=1738986&r1=1738985&r2=1738986&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java
(original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/ResolveContext.java
Wed Apr 13 18:51:20 2016
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.aries.subsystem.core.archive.ProvisionPolicyDirective;
+import org.apache.aries.subsystem.core.archive.SubsystemContentHeader;
 import org.apache.aries.subsystem.core.archive.SubsystemManifest;
 import org.apache.aries.subsystem.core.archive.SubsystemTypeHeader;
 import org.apache.aries.subsystem.core.internal.BundleResourceInstaller.BundleConstituent;
@@ -338,8 +339,17 @@ public class ResolveContext extends org.
 	private boolean isValid(Capability capability, Requirement requirement) throws BundleException,
IOException, InvalidSyntaxException, URISyntaxException {
 		if (IdentityNamespace.IDENTITY_NAMESPACE.equals(capability.getNamespace()))
 			return true;
-		Region from = findRegionForCapabilityValidation(capability.getResource());
-		Region to = findRegionForCapabilityValidation(requirement.getResource());
+		Resource provider = capability.getResource();
+		Resource requirer = requirement.getResource();
+		SubsystemManifest manifest = resource.getSubsystemManifest();
+		SubsystemContentHeader header = manifest.getSubsystemContentHeader();
+		if (header.contains(provider) && header.contains(requirer)) {
+			// Shortcut. If both the provider and requirer are content then they
+			// are in the same region and the capability will be visible.
+			return true;
+		}
+		Region from = findRegionForCapabilityValidation(provider);
+		Region to = findRegionForCapabilityValidation(requirer);
 		return new SharingPolicyValidator(from, to).isValid(capability);
 	}
 	



Mime
View raw message