You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2016/03/08 09:41:48 UTC

svn commit: r1734034 - in /felix/trunk/framework/src/main/java/org/apache/felix/framework: BundleProtectionDomain.java util/FelixConstants.java

Author: gnodet
Date: Tue Mar  8 08:41:48 2016
New Revision: 1734034

URL: http://svn.apache.org/viewvc?rev=1734034&view=rev
Log:
[FELIX-5204] Support using cached urls for bundle SourceCode

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java?rev=1734034&r1=1734033&r2=1734034&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleProtectionDomain.java Tue Mar  8 08:41:48 2016
@@ -46,6 +46,7 @@ import java.util.jar.JarFile;
 import java.util.jar.JarOutputStream;
 import org.apache.felix.framework.cache.Content;
 import org.apache.felix.framework.cache.JarContent;
+import org.apache.felix.framework.util.FelixConstants;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.PackagePermission;
 
@@ -335,6 +336,17 @@ public class BundleProtectionDomain exte
         {
             RevisionAsJarURL handler = new RevisionAsJarURL(revision);
 
+            boolean useCachedUrlForCodeSource = Boolean.parseBoolean(
+                    revision.getBundle().getFramework().getProperty(FelixConstants.USE_CACHEDURLS_PROPS));
+            if (useCachedUrlForCodeSource)
+            {
+                String location = "jar:" + revision.getEntry("/") + "!/";
+                return Felix.m_secureAction.createURL(
+                        Felix.m_secureAction.createURL(null, "jar:", handler),
+                        location,
+                        handler
+                );
+            }
 
             String location = revision.getBundle()._getLocation();
             if (location.startsWith("reference:"))

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java?rev=1734034&r1=1734033&r2=1734034&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/util/FelixConstants.java Tue Mar  8 08:41:48 2016
@@ -53,6 +53,7 @@ public interface FelixConstants extends
     String USE_LOCALURLS_PROP = "felix.jarurls";
     String NATIVE_OS_NAME_ALIAS_PREFIX = "felix.native.osname.alias";
     String NATIVE_PROC_NAME_ALIAS_PREFIX = "felix.native.processor.alias";
+    String USE_CACHEDURLS_PROPS = "felix.bundlecodesource.usecachedurls";
 
     // Missing OSGi constant for resolution directive.
     String RESOLUTION_DYNAMIC = "dynamic";