[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