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 2015/11/16 17:07:37 UTC

svn commit: r1714615 - in /aries/trunk/subsystem/subsystem-core/src: main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java

Author: jwross
Date: Mon Nov 16 16:07:37 2015
New Revision: 1714615

URL: http://svn.apache.org/viewvc?rev=1714615&view=rev
Log:
[ARIES-1453] Fragment-Host requirements with version range do not match with FragmentHostCapability

Committing contents of pull request by user tom.dewolf. I made a few incidental changes to the provided test.

GitHub user tomdw opened a pull request:

    https://github.com/apache/aries/pull/30

    Aries 1453 test fragment host fix

    See https://issues.apache.org/jira/browse/ARIES-1453 for a description of the problem.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/tomdw/aries ARIES-1453-testFragmentHostFix

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/aries/pull/30.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #30

----
commit 657c10e58f7e9f63fab799eb965a83510b80b97f
Author: Tom De Wolf <t....@aca-it.be>
Date:   2015-11-15T20:16:52Z

    FragmentHostCapability should return version as real Version in order for correct requirement to capability matching to happen with version ranges

commit 434d0d2aa45016b8b0f3e46929ed5dfa312ab6ae
Author: Tom De Wolf <t....@aca-it.be>
Date:   2015-11-15T20:22:00Z

    add extra test that fails when FragmentHostHeader, FragmentHostRequirement, and FragmentHostCapability do not match with version ranges

commit d0fca5c8d758a2eec9510e71a1ad583269382dd3
Author: Tom De Wolf <t....@aca-it.be>
Date:   2015-11-15T20:56:39Z

    ARIES-1453 extract in separate test class

Added:
    aries/trunk/subsystem/subsystem-core/src/test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java
Modified:
    aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java

Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java?rev=1714615&r1=1714614&r2=1714615&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/FragmentHostCapability.java Mon Nov 16 16:07:37 2015
@@ -39,7 +39,7 @@ public class FragmentHostCapability exte
 		Collection<Attribute> attributes = clause.getAttributes();
 		Map<String, Object> result = new HashMap<String, Object>(attributes.size() + 2);
 		result.put(NAMESPACE, clause.getPath());
-		result.put(ATTRIBUTE_BUNDLE_VERSION, version.getValue());
+		result.put(ATTRIBUTE_BUNDLE_VERSION, version.getVersion());
 		for (Attribute attribute : attributes) {
 			result.put(attribute.getName(), attribute.getValue());
 		}

Added: aries/trunk/subsystem/subsystem-core/src/test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java?rev=1714615&view=auto
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java (added)
+++ aries/trunk/subsystem/subsystem-core/src/test/java/org/apache/aries/subsystem/core/archive/Aries1453Test.java Mon Nov 16 16:07:37 2015
@@ -0,0 +1,51 @@
+package org.apache.aries.subsystem.core.archive;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.aries.subsystem.core.capabilityset.CapabilitySet;
+import org.apache.aries.subsystem.core.capabilityset.SimpleFilter;
+import org.junit.Assert;
+import org.junit.Test;
+import org.osgi.framework.namespace.HostNamespace;
+import org.osgi.resource.Capability;
+import org.osgi.resource.Namespace;
+import org.osgi.resource.Requirement;
+import org.osgi.resource.Resource;
+
+/*
+ * https://issues.apache.org/jira/browse/ARIES-1453
+ * 
+ * Fragment-Host requirements with version range do not match with 
+ * FragmentHostCapability
+ */
+public class Aries1453Test {
+	@Test
+	public void shouldResolveFragmentHostWithVersionRangeAndMatchWithBundlesInThatRange() {
+		FragmentHostHeader header = new FragmentHostHeader("host-bundle;bundle-version=\"[9.6.0,10)\"");
+		FragmentHostRequirement requirement = new FragmentHostRequirement(
+				header.getClauses().iterator().next(), null);
+		FragmentHostCapability capability = new FragmentHostCapability(
+				new BundleSymbolicNameHeader("host-bundle"), 
+				new BundleVersionHeader("9.6.1"), 
+				new Resource() {
+					@Override
+					public List<Capability> getCapabilities(String namespace) {
+						return null;
+					}
+
+					@Override
+					public List<Requirement> getRequirements(String namespace) {
+						return null;
+					}
+				});
+		String filterDirective = requirement.getDirectives().get(Namespace.REQUIREMENT_FILTER_DIRECTIVE);
+        SimpleFilter simpleFilter = SimpleFilter.parse(filterDirective);
+        CapabilitySet capabilitySet = new CapabilitySet(Arrays.asList(HostNamespace.HOST_NAMESPACE), true);
+        capabilitySet.addCapability(capability);
+        Set<Capability> capabilities = capabilitySet.match(simpleFilter, true);
+        Assert.assertTrue(capabilities.size() == 1);
+        Assert.assertSame(capabilities.iterator().next(), capability);
+	}
+}