[jboss-osgi-commits] JBoss-OSGI SVN: r99461 - in projects: jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading and 1 other directories.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Fri Jan 15 07:18:03 EST 2010
Author: thomas.diesler at jboss.com
Date: 2010-01-15 07:18:02 -0500 (Fri, 15 Jan 2010)
New Revision: 99461
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiBundleClassLoader.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderPolicy.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiFragmentAttachmentDeployer.java
Log:
Delegate fragment resorce loading to VFSClassLoaderPolicy
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-01-15 11:46:30 UTC (rev 99460)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2010-01-15 12:18:02 UTC (rev 99461)
@@ -642,6 +642,27 @@
{
}
}
+
+ if (fragments != null)
+ {
+ for (VirtualFile root : fragments)
+ {
+ try
+ {
+ VirtualFile file = root.getChild(path);
+ if (file != null)
+ {
+ result = new VirtualFileInfo(file, root);
+ vfsCache.put(path, result);
+ return result;
+ }
+ }
+ catch (Exception ignored)
+ {
+ }
+ }
+ }
+
return null;
}
Modified: projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiBundleClassLoader.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiBundleClassLoader.java 2010-01-15 11:46:30 UTC (rev 99460)
+++ projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiBundleClassLoader.java 2010-01-15 12:18:02 UTC (rev 99461)
@@ -23,10 +23,7 @@
// $Id: OSGiClassLoaderFactory.java 95177 2009-10-20 15:14:31Z thomas.diesler at jboss.com $
-import java.util.List;
-
import org.jboss.classloader.spi.ClassLoaderPolicy;
-import org.jboss.classloader.spi.DelegateLoader;
import org.jboss.classloader.spi.base.BaseClassLoader;
/**
@@ -62,31 +59,4 @@
return libraryPath;
}
-
- @Override
- public Class<?> loadClass(String className) throws ClassNotFoundException
- {
- try
- {
- Class<?> clazz = super.loadClass(className);
- return clazz;
- }
- catch (ClassNotFoundException ex)
- {
- // Try to load the class in the attached fragments
- List<DelegateLoader> fragmentLoaders = osgiPolicy.getFragmentLoaders();
- if (fragmentLoaders != null)
- {
- for (DelegateLoader fragLoader : fragmentLoaders)
- {
- Class<?> clazz = fragLoader.loadClass(className);
- if (clazz != null)
- return clazz;
- }
- }
-
- // Throw the ClassNotFoundException
- throw ex;
- }
- }
}
Modified: projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderPolicy.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderPolicy.java 2010-01-15 11:46:30 UTC (rev 99460)
+++ projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderPolicy.java 2010-01-15 12:18:02 UTC (rev 99461)
@@ -24,13 +24,9 @@
// $Id$
import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import org.jboss.classloader.spi.DelegateLoader;
import org.jboss.classloading.spi.dependency.Module;
import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
import org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule;
@@ -50,8 +46,6 @@
{
// Maps the lib name to native code archive
private Map<String, File> libraryMap;
- // The optional list of attached fragment loaders
- private List<DelegateLoader> fragmentLoaders;
public OSGiClassLoaderPolicy(AbstractBundleState bundleState, VirtualFile[] roots)
{
@@ -102,36 +96,4 @@
return (libfile != null ? libfile.getAbsolutePath() : null);
}
-
- public List<DelegateLoader> getFragmentLoaders()
- {
- return fragmentLoaders;
- }
-
- public void addFragmentLoader(DelegateLoader delegateLoader)
- {
- if (fragmentLoaders == null)
- fragmentLoaders = new ArrayList<DelegateLoader>();
-
- fragmentLoaders.add(delegateLoader);
- }
-
- @Override
- public URL getResource(String path)
- {
- URL resourceURL = super.getResource(path);
-
- // Try to find the resource in the attached fragments
- if (resourceURL == null && fragmentLoaders != null)
- {
- for (DelegateLoader fragLoader : fragmentLoaders)
- {
- resourceURL = fragLoader.getResource(path);
- if (resourceURL != null)
- break;
- }
- }
-
- return resourceURL;
- }
}
Modified: projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiFragmentAttachmentDeployer.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiFragmentAttachmentDeployer.java 2010-01-15 11:46:30 UTC (rev 99460)
+++ projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiFragmentAttachmentDeployer.java 2010-01-15 12:18:02 UTC (rev 99461)
@@ -24,7 +24,6 @@
// $Id$
import org.jboss.classloader.spi.ClassLoaderPolicy;
-import org.jboss.classloader.spi.DelegateLoader;
import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.DeploymentStages;
@@ -91,10 +90,7 @@
OSGiBundleState hostState = fragState.getFragmentHost();
DeploymentUnit hostUnit = hostState.getDeploymentUnit();
OSGiClassLoaderPolicy hostPolicy = (OSGiClassLoaderPolicy)hostUnit.getAttachment(ClassLoaderPolicy.class);
-
- OSGiClassLoaderPolicy fragPolicy = (OSGiClassLoaderPolicy)unit.getAttachment(ClassLoaderPolicy.class);
- DelegateLoader fragLoader = new DelegateLoader(fragPolicy);
- hostPolicy.addFragmentLoader(fragLoader);
+ hostPolicy.attachFragment(fragState.getRoot());
}
}
}
More information about the jboss-osgi-commits
mailing list