org.jboss.deployment.scope
Class ScopedURLClassLoader
java.lang.Object
|
+--java.lang.ClassLoader
|
+--java.security.SecureClassLoader
|
+--java.net.URLClassLoader
|
+--org.jboss.deployment.scope.ScopedURLClassLoader
- public class ScopedURLClassLoader
- extends java.net.URLClassLoader
A URLClassLoader that is tight to some J2EE deployment and that is
able to share classes/resources under the associated scope. Hey, JDK-S**ckers
why did you annotate getResources final?
- Version:
- 0.9
- Author:
- cgjung
Field Summary |
protected Deployment |
deployment
reference to the deployment that is associated
with this classloader |
protected Scope |
scope
reference to the scope to which resource loading calls
can be delegated to. |
Constructor Summary |
ScopedURLClassLoader(java.net.URL[] urls,
java.lang.ClassLoader parent,
Deployment deployment,
Scope scope)
Creates new ScopedURLClassLoader given a set of urls and a parent,
representing a particular deployment |
Method Summary |
java.lang.String[] |
getDependingApplications()
returns a set of relative urls in string spec that
point to applications to which this application
is (most likely) dependent on. |
java.net.URL |
getResource(java.lang.String name)
redirects getResource in case that it could not be found locally |
protected java.net.URL |
getResourceProperly(java.lang.String name)
exposes the proper getResource call |
protected java.lang.Class |
loadClass(java.lang.String name,
boolean resolve)
redirects loadClass in case that it could not be found locally |
protected java.lang.Class |
loadClassProperly(java.lang.String name,
boolean resolve)
exposes the proper loadClass call |
protected void |
onDeploy()
what happens on deploy, could be overridden to setup down meta-data and such |
protected void |
onUndeploy()
what happens on undeploy, could be overridden to tear down meta-data and such |
Methods inherited from class java.net.URLClassLoader |
addURL, definePackage, findClass, findResource, findResources, getPermissions, getURLs, newInstance, newInstance |
Methods inherited from class java.security.SecureClassLoader |
defineClass |
Methods inherited from class java.lang.ClassLoader |
defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setSigners |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
scope
protected final Scope scope
- reference to the scope to which resource loading calls
can be delegated to.
deployment
protected final Deployment deployment
- reference to the deployment that is associated
with this classloader
ScopedURLClassLoader
public ScopedURLClassLoader(java.net.URL[] urls,
java.lang.ClassLoader parent,
Deployment deployment,
Scope scope)
- Creates new ScopedURLClassLoader given a set of urls and a parent,
representing a particular deployment
- Parameters:
urls
- the urls for which this classloader is built.parent
- parent classloaderdeployment
- deployment to deploy into this loaderscope
- the scope that this classloader takes part
loadClassProperly
protected java.lang.Class loadClassProperly(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
- exposes the proper loadClass call
- Parameters:
name
- name of the classresolve
- whether the class should be resolved- Returns:
- the found class
- Throws:
java.lang.ClassNotFoundException
- if the class cannot be found
loadClass
protected java.lang.Class loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
- redirects loadClass in case that it could not be found locally
- Overrides:
loadClass
in class java.lang.ClassLoader
- Parameters:
name
- name of the classresolve
- whether the class should be resolved- Returns:
- the found java class
- Throws:
java.lang.ClassNotFoundException
- if the class could not be found
getResourceProperly
protected java.net.URL getResourceProperly(java.lang.String name)
- exposes the proper getResource call
- Parameters:
name
- name of the resource- Returns:
- URL pointing to the resource, null if it could not be found
getResource
public java.net.URL getResource(java.lang.String name)
- redirects getResource in case that it could not be found locally
- Overrides:
getResource
in class java.lang.ClassLoader
- Parameters:
name
- name of the resource- Returns:
- URL pointing to the resource, null if it cannot
be found
onDeploy
protected void onDeploy()
throws J2eeDeploymentException
- what happens on deploy, could be overridden to setup down meta-data and such
- Throws:
J2eeDeploymentException
- if this stage of deployment fails for some reason
onUndeploy
protected void onUndeploy()
throws J2eeDeploymentException
- what happens on undeploy, could be overridden to tear down meta-data and such
- Throws:
J2eeDeploymentException
- if this last stage of undeployment fails for some reason
getDependingApplications
public java.lang.String[] getDependingApplications()
- returns a set of relative urls in string spec that
point to applications to which this application
is (most likely) dependent on. Works via analysing the
Class-Path: in the Manifest.mf.
Marc: Please note that sharing scope works also without
having these explicit annotations. However,
there may be circular dependencies that are already relevant
at deployment time (e.g., bean verification) which you otherwise
could never setup manually (i.e., by calling the deploy method).
- Returns:
- relative string-url specs pointing to ears.
Copyright © 2000 The JBoss Organization. All Rights Reserved.