You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2018/04/20 07:22:24 UTC

svn commit: r1829629 - in /felix/trunk/bundlerepository: pom.xml src/main/java/org/apache/felix/bundlerepository/impl/OSGiRepositoryImpl.java

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;
+        }
+    }
 }