You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/01/27 14:03:26 UTC

svn commit: r372832 - in /incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework: URLHandlers.java URLHandlersBundleURLConnection.java

Author: rickhall
Date: Fri Jan 27 05:03:22 2006
New Revision: 372832

URL: http://svn.apache.org/viewcvs?rev=372832&view=rev
Log:
Minor changes needed to cope with the Module Loader refactoring.

Modified:
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlers.java
    incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlers.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlers.java?rev=372832&r1=372831&r2=372832&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlers.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlers.java Fri Jan 27 05:03:22 2006
@@ -19,8 +19,8 @@
 import java.net.*;
 import java.util.*;
 
+import org.apache.felix.framework.searchpolicy.ContentClassLoader;
 import org.apache.felix.framework.util.*;
-import org.apache.felix.moduleloader.ModuleClassLoader;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -345,7 +345,7 @@
                 Class targetClass = null;
                 for (int i = 0; i < stack.length; i++)
                 {
-                    if (stack[i].getClassLoader() instanceof ModuleClassLoader)
+                    if (stack[i].getClassLoader() instanceof ContentClassLoader)
                     {
                         targetClass = stack[i];
                         break;

Modified: incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
URL: http://svn.apache.org/viewcvs/incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java?rev=372832&r1=372831&r2=372832&view=diff
==============================================================================
--- incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java (original)
+++ incubator/felix/sandbox/rickhall/framework-branch/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java Fri Jan 27 05:03:22 2006
@@ -1,5 +1,5 @@
 /*
- *   Copyright 2005 The Apache Software Foundation
+ *   Copyright 2006 The Apache Software Foundation
  *
  *   Licensed under the Apache License, Version 2.0 (the "License");
  *   you may not use this file except in compliance with the License.
@@ -54,8 +54,18 @@
                 throw new IOException("Unable to find framework instance from context.");
             }
 
-            m_is = m_framework.getBundleResourceInputStream(url);
-            m_contentLength = m_is.available();
+            // The URL is constructed like this:
+            //     bundle://<module-id>/<resource-path>
+            // Where <module-id> = <bundle-id>.<revision>
+            long bundleId = BundleInfo.getBundleIdFromModuleId(url.getHost());
+            BundleImpl bundle = (BundleImpl) m_framework.getBundle(bundleId);
+            if (bundle == null)
+            {
+                throw new IOException("Unable to find bundle.");
+            }
+            int revision = BundleInfo.getModuleRevisionFromModuleId(url.getHost());
+            m_is = bundle.getInfo().getModules()[revision].getContentLoader().getResourceAsStream(url.getPath());
+            m_contentLength = (m_is == null) ? 0 : m_is.available();
             m_contentTime = 0L;
             m_contentType = URLConnection.guessContentTypeFromName(url.getFile());
             connected = true;