[jboss-osgi-commits] JBoss-OSGI SVN: r92639 - in projects/jboss-osgi/trunk: testsuite and 1 other directory.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Thu Aug 20 16:23:15 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-08-20 16:23:15 -0400 (Thu, 20 Aug 2009)
New Revision: 92639

Modified:
   projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/FrameworkClassLoader.java
   projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/RuntimeClassLoaderImpl.java
   projects/jboss-osgi/trunk/testsuite/pom.xml
Log:
Add URL cache

Modified: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/FrameworkClassLoader.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/FrameworkClassLoader.java	2009-08-20 20:16:03 UTC (rev 92638)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/FrameworkClassLoader.java	2009-08-20 20:23:15 UTC (rev 92639)
@@ -21,10 +21,9 @@
  */
 package org.jboss.osgi.jbossmc.framework.resolver;
 
-//$Id: FrameworkImpl.java 92607 2009-08-20 12:03:26Z thomas.diesler at jboss.com $
+// $Id: $
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.StringTokenizer;

Modified: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/RuntimeClassLoaderImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/RuntimeClassLoaderImpl.java	2009-08-20 20:16:03 UTC (rev 92638)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/resolver/RuntimeClassLoaderImpl.java	2009-08-20 20:23:15 UTC (rev 92639)
@@ -27,6 +27,8 @@
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.jboss.logging.Logger;
 import org.jboss.osgi.jbossmc.api.RuntimeClassLoader;
@@ -38,8 +40,7 @@
 import org.osgi.framework.launch.Framework;
 
 /**
- * An implementation of a RuntimeClassLoader that uses a flat class
- * space for all installed bundles.
+ * An implementation of a RuntimeClassLoader that uses a flat class space for all installed bundles.
  * 
  * @author thomas.diesler at jboss.com
  * @since 18-Aug-2009
@@ -60,7 +61,7 @@
       vFile = bundleImpl.getVirtualFile();
 
       parentClassLoader = getClass().getClassLoader();
-      
+
       if (globalClassLoader == null)
       {
          FrameworkImpl frameworkImpl = (FrameworkImpl)framework;
@@ -128,6 +129,7 @@
    static class GlobalFrameworkLoader extends URLClassLoader
    {
       private ClassLoader parent;
+      private Set<String> urlCache = new HashSet<String>();
 
       public GlobalFrameworkLoader(ClassLoader parent)
       {
@@ -138,13 +140,19 @@
       @Override
       public void addURL(URL url)
       {
-         log.debug("Add URL: " + url);
-         super.addURL(url);
+         if (urlCache.contains(url.toExternalForm()) == false)
+         {
+            log.debug("Add URL: " + url);
+            urlCache.add(url.toExternalForm());
+            super.addURL(url);
+         }
       }
 
       @Override
       public Class<?> loadClass(String name) throws ClassNotFoundException
       {
+         // System.out.println("gfl: " + name);
+         
          Class<?> clazz;
          try
          {
@@ -154,7 +162,7 @@
          {
             clazz = parent.loadClass(name);
          }
-
+         
          return clazz;
       }
    }

Modified: projects/jboss-osgi/trunk/testsuite/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/pom.xml	2009-08-20 20:16:03 UTC (rev 92638)
+++ projects/jboss-osgi/trunk/testsuite/pom.xml	2009-08-20 20:23:15 UTC (rev 92639)
@@ -184,7 +184,7 @@
         </property>
       </activation>
       
-      <!-- default to jbossmc 
+      <!-- default to jbossmc -->
       <dependencies>
         <dependency>
           <groupId>org.jboss.osgi.runtime</groupId>
@@ -193,9 +193,8 @@
           <scope>provided</scope>
         </dependency>
       </dependencies>
-      -->
       
-      <!-- default to felix -->
+      <!-- default to felix 
       <dependencies>
         <dependency>
           <groupId>org.jboss.osgi</groupId>
@@ -204,6 +203,7 @@
           <scope>provided</scope>
         </dependency>
       </dependencies>
+      -->
     </profile>
 
     <!--



More information about the jboss-osgi-commits mailing list