Author: davidb Date: Fri Apr 20 07:22:24 2018 New Revision: 1829629 URL: http://svn.apache.org/viewvc?rev=1829629&view=rev Log: Use the latest shared Capabilities implementation from utils project.
Modified: felix/trunk/bundlerepository/pom.xml felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java Modified: felix/trunk/bundlerepository/pom.xml URL: http://svn.apache.org/viewvc/felix/trunk/bundlerepository/pom.xml?rev=1829629&r1=1829628&r2=1829629&view=diff ============================================================================== --- felix/trunk/bundlerepository/pom.xml (original) +++ felix/trunk/bundlerepository/pom.xml Fri Apr 20 07:22:24 2018 @@ -38,7 +38,7 @@ <dependency> <groupId>${project.groupId}</groupId> <artifactId>org.apache.felix.utils</artifactId> - <version>1.10.5-SNAPSHOT</version> + <version>1.11.0-SNAPSHOT</version> <optional>true</optional> </dependency> <dependency> Modified: felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java URL: http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java?rev=1829629&r1=1829628&r2=1829629&view=diff ============================================================================== --- felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java (original) +++ felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java Fri Apr 20 07:22:24 2018 @@ -155,7 +155,7 @@ class OSGiRepositoryImpl implements Repo contentAttrs.put(ContentNamespace.CAPABILITY_MIME_ATTRIBUTE, mime); contentAttrs.put(ContentNamespace.CAPABILITY_SIZE_ATTRIBUTE, resource.getSize()); contentAttrs.put(ContentNamespace.CAPABILITY_URL_ATTRIBUTE, uri); - return new CapabilityImpl(ContentNamespace.CONTENT_NAMESPACE, contentAttrs, Collections.<String, String> emptyMap()); + return new ContentCapabilityImpl(contentAttrs); } static String getSHA256(String uri) throws IOException, NoSuchAlgorithmException // TODO find a good place for this @@ -180,4 +180,20 @@ class OSGiRepositoryImpl implements Repo } return sb.toString(); } + + // This capability variant does not take a private copy of the capabilities so that it + // can lazily compute the content hash. + private static class ContentCapabilityImpl extends CapabilityImpl implements Capability { + private final Map<String, Object> contentAttributes; + + public ContentCapabilityImpl(Map<String, Object> contentAttrs) { + super(ContentNamespace.CONTENT_NAMESPACE, null, null); + contentAttributes = Collections.unmodifiableMap(contentAttrs); + } + + @Override + public Map<String, Object> getAttributes() { + return contentAttributes; + } + } }