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 2010/10/11 09:47:26 UTC

svn commit: r1021267 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java

Author: gnodet
Date: Mon Oct 11 07:47:26 2010
New Revision: 1021267

URL: http://svn.apache.org/viewvc?rev=1021267&view=rev
Log:
FELIX-2645: Introduce the org.apache.felix.jarurls property

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java?rev=1021267&r1=1021266&r2=1021267&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java Mon Oct 11 07:47:26 2010
@@ -158,6 +158,13 @@ public class ModuleImpl implements Modul
     // Flag indicating whether we are on an old JVM or not.
     private volatile static boolean m_isPreJava5 = false;
 
+    static ThreadLocal<Boolean> m_jarUrl = new ThreadLocal<Boolean>() {
+        @Override
+        protected Boolean initialValue() {
+            return false;
+        }
+    };
+
     /**
      * This constructor is used by the extension manager, since it needs
      * a constructor that does not throw an exception.
@@ -1091,7 +1098,6 @@ public class ModuleImpl implements Modul
         return getContentPath()[index - 1].getEntryAsStream(urlPath);
     }
 
-    // TODO: REMOVE - Remove when class path scanning is implemented.
     public URL getLocalURL(int index, String urlPath)
     {
         if (urlPath.startsWith("/"))
@@ -1107,6 +1113,10 @@ public class ModuleImpl implements Modul
 
     private URL createURL(int port, String path)
     {
+         if (useJarUrl())
+         {
+             return getLocalURL(port, path);
+         }
          // Add a slash if there is one already, otherwise
          // the is no slash separating the host from the file
          // in the resulting URL.
@@ -1131,6 +1141,13 @@ public class ModuleImpl implements Modul
          return null;
     }
 
+    private boolean useJarUrl()
+    {
+        String val = (String) ((BundleImpl) getBundle()).getFramework()
+                        .getConfig().get("org.apache.felix.jarurls");
+        return m_jarUrl.get() && Boolean.parseBoolean(val);
+    }
+
     //
     // Fragment and dependency management methods.
     //