Author: rotty3000 Date: Fri Nov 16 18:16:24 2018 New Revision: 1846736 URL: http://svn.apache.org/viewvc?rev=1846736&view=rev Log: ARIES-1863 Ensure type compatibility when running in an environment that already has bnd uses elsewhere
Signed-off-by: Raymond Auge <rotty3...@apache.org> Modified: aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ConsumerHeaderProcessor.java aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java Modified: aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ConsumerHeaderProcessor.java URL: http://svn.apache.org/viewvc/aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ConsumerHeaderProcessor.java?rev=1846736&r1=1846735&r2=1846736&view=diff ============================================================================== --- aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ConsumerHeaderProcessor.java (original) +++ aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ConsumerHeaderProcessor.java Fri Nov 16 18:16:24 2018 @@ -24,6 +24,7 @@ import java.util.Dictionary; import java.util.HashSet; import java.util.Hashtable; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.ServiceLoader; import java.util.Set; @@ -34,7 +35,6 @@ import org.osgi.framework.FrameworkUtil; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.Version; -import aQute.bnd.header.Attrs; import aQute.bnd.header.OSGiHeader; import aQute.bnd.header.Parameters; @@ -194,12 +194,12 @@ public class ConsumerHeaderProcessor { Set<WeavingData> weavingData = new HashSet<WeavingData>(); Parameters requirements = OSGiHeader.parseHeader(consumerHeader); - Entry<String, Attrs> extenderRequirement = findRequirement(requirements, SpiFlyConstants.EXTENDER_CAPABILITY_NAMESPACE, SpiFlyConstants.PROCESSOR_EXTENDER_NAME); - Collection<Entry<String, Attrs>> serviceLoaderRequirements = findAllMetadata(requirements, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE); + Entry<String, ? extends Map<String, String>> extenderRequirement = findRequirement(requirements, SpiFlyConstants.EXTENDER_CAPABILITY_NAMESPACE, SpiFlyConstants.PROCESSOR_EXTENDER_NAME); + Collection<Entry<String, ? extends Map<String, String>>> serviceLoaderRequirements = findAllMetadata(requirements, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE); if (extenderRequirement != null) { List<BundleDescriptor> allowedBundles = new ArrayList<BundleDescriptor>(); - for (Entry<String, Attrs> req : serviceLoaderRequirements) { + for (Entry<String, ? extends Map<String, String>> req : serviceLoaderRequirements) { String slFilterString = req.getValue().get(SpiFlyConstants.FILTER_DIRECTIVE); if (slFilterString != null) { Filter slFilter = FrameworkUtil.createFilter(slFilterString); @@ -243,8 +243,8 @@ public class ConsumerHeaderProcessor { allowedBundles.size() == 0 ? null : allowedBundles); } - static Entry<String, Attrs> findCapability(Parameters capabilities, String namespace, String spiName) { - for (Entry<String, Attrs> cap : capabilities.entrySet()) { + static Entry<String, ? extends Map<String, String>> findCapability(Parameters capabilities, String namespace, String spiName) { + for (Entry<String, ? extends Map<String, String>> cap : capabilities.entrySet()) { String key = removeDuplicateMarker(cap.getKey()); if (namespace.equals(key)) { if (spiName.equals(cap.getValue().get(namespace))) { @@ -255,12 +255,12 @@ public class ConsumerHeaderProcessor { return null; } - static Entry<String, Attrs> findRequirement(Parameters requirements, String namespace, String type) throws InvalidSyntaxException { + static Entry<String, ? extends Map<String, String>> findRequirement(Parameters requirements, String namespace, String type) throws InvalidSyntaxException { Dictionary<String, Object> nsAttr = new Hashtable<>(); nsAttr.put(namespace, type); nsAttr.put("version", SpiFlyConstants.SPECIFICATION_VERSION); - for (Entry<String, Attrs> req : requirements.entrySet()) { + for (Entry<String, ? extends Map<String, String>> req : requirements.entrySet()) { String key = removeDuplicateMarker(req.getKey()); if (namespace.equals(key)) { String filterString = req.getValue().get(SpiFlyConstants.FILTER_DIRECTIVE); @@ -275,9 +275,9 @@ public class ConsumerHeaderProcessor { return null; } - static Collection<Entry<String, Attrs>> findAllMetadata(Parameters requirementsOrCapabilities, String namespace) { - List<Entry<String, Attrs>> reqsCaps = new ArrayList<>(); - for (Entry<String, Attrs> reqCap : requirementsOrCapabilities.entrySet()) { + static Collection<Entry<String, ? extends Map<String, String>>> findAllMetadata(Parameters requirementsOrCapabilities, String namespace) { + List<Entry<String, ? extends Map<String, String>>> reqsCaps = new ArrayList<>(); + for (Entry<String, ? extends Map<String, String>> reqCap : requirementsOrCapabilities.entrySet()) { String key = removeDuplicateMarker(reqCap.getKey()); if (namespace.equals(key)) { reqsCaps.add(reqCap); Modified: aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java URL: http://svn.apache.org/viewvc/aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java?rev=1846736&r1=1846735&r2=1846736&view=diff ============================================================================== --- aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java (original) +++ aries/trunk/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java Fri Nov 16 18:16:24 2018 @@ -47,7 +47,6 @@ import org.osgi.framework.wiring.BundleW import org.osgi.framework.wiring.BundleWiring; import org.osgi.util.tracker.BundleTrackerCustomizer; -import aQute.bnd.header.Attrs; import aQute.bnd.header.OSGiHeader; import aQute.bnd.header.Parameters; @@ -254,7 +253,7 @@ public class ProviderBundleTrackerCustom return null; Parameters requirements = OSGiHeader.parseHeader(requirementHeader); - Entry<String, Attrs> extenderRequirement = ConsumerHeaderProcessor.findRequirement(requirements, SpiFlyConstants.EXTENDER_CAPABILITY_NAMESPACE, SpiFlyConstants.REGISTRAR_EXTENDER_NAME); + Entry<String, ? extends Map<String, String>> extenderRequirement = ConsumerHeaderProcessor.findRequirement(requirements, SpiFlyConstants.EXTENDER_CAPABILITY_NAMESPACE, SpiFlyConstants.REGISTRAR_EXTENDER_NAME); if (extenderRequirement == null) return null; @@ -267,7 +266,7 @@ public class ProviderBundleTrackerCustom } List<String> serviceNames = new ArrayList<String>(); - for (Entry<String, Attrs> serviceLoaderCapability : ConsumerHeaderProcessor.findAllMetadata(capabilities, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE)) { + for (Entry<String, ? extends Map<String, String>> serviceLoaderCapability : ConsumerHeaderProcessor.findAllMetadata(capabilities, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE)) { for (Entry<String, String> entry : serviceLoaderCapability.getValue().entrySet()) { if (SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE.equals(entry.getKey())) { serviceNames.add(entry.getValue().toString()); @@ -291,7 +290,7 @@ public class ProviderBundleTrackerCustom return null; Parameters capabilities = OSGiHeader.parseHeader(capabilityHeader.toString()); - Entry<String, Attrs> cap = ConsumerHeaderProcessor.findCapability(capabilities, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE, spiName); + Entry<String, ? extends Map<String, String>> cap = ConsumerHeaderProcessor.findCapability(capabilities, SpiFlyConstants.SERVICELOADER_CAPABILITY_NAMESPACE, spiName); Hashtable<String, Object> properties = new Hashtable<String, Object>(); if (cap != null) {