org.mule.module.launcher
Class MuleSharedDomainClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.mule.module.launcher.GoodCitizenClassLoader
org.mule.module.launcher.FineGrainedControlClassLoader
org.mule.module.launcher.artifact.AbstractArtifactClassLoader
org.mule.module.launcher.MuleSharedDomainClassLoader
- All Implemented Interfaces:
- ArtifactClassLoader, DisposableClassLoader, LocalResourceLocator
public class MuleSharedDomainClassLoader
- extends AbstractArtifactClassLoader
- implements ArtifactClassLoader
Load $MULE_HOME/lib/shared/ libraries.
| Methods inherited from class java.lang.ClassLoader |
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners |
DOMAIN_LIBRARY_FOLDER
public static final String DOMAIN_LIBRARY_FOLDER
- See Also:
- Constant Field Values
OLD_DOMAIN_LIBRARY_FOLDER
public static final String OLD_DOMAIN_LIBRARY_FOLDER
MuleSharedDomainClassLoader
public MuleSharedDomainClassLoader(String domain,
ClassLoader parent)
toString
public String toString()
- Overrides:
toString in class Object
getArtifactName
public String getArtifactName()
- Specified by:
getArtifactName in interface ArtifactClassLoader
- Returns:
- the artifact unique identifier
getClassLoader
public ClassLoader getClassLoader()
- Description copied from interface:
ArtifactClassLoader
- ClassLoader is an abstract class. Not an interface.
There are parts of the code that requires a ClassLoader and others that requires an ArtifactClassLoader.
Ideally I would make ArtifactClassLoader implement ClassLoader interface but there's no such interface.
So if I have a method that requires a ClassLoader instance and an ArtifactClassLoader I would have to down cast and assume that it can be down casted or send two parameters, one for the ClassLoader and one for the ArtifactClassLoader:
public void doSomething(ArtifactClassLoader acl)
{
doSomething2(acl); //this requires an ArtifactClassLoader
doSomething3((ClassLoader)acl); //this requires a ClassLoader
}
public void doSomething(ArtifactClassLoader acl, ClassLoader cl)
{
doSomething2(acl); //this requires an ArtifactClassLoader
doSomething3(cl); //this requires a ClassLoader
}
To overcome that problem seems much better to have a method in ArtifactClassLoader that can actually return a ClassLoader instance:
public void doSomething(ArtifactClassLoader acl)
{
doSomething2(acl); //this requires an ArtifactClassLoader
doSomething3(acl.getDomainClassLoader()); //this requires a ClassLoader
}
- Specified by:
getClassLoader in interface ArtifactClassLoader
- Returns:
- class loader to use for this artifact.
findResource
public URL findResource(String name)
- Specified by:
findResource in interface ArtifactClassLoader- Overrides:
findResource in class URLClassLoader
- Parameters:
name - name of the resource to find.
- Returns:
- the resource URL, null if it doesn't exists.
getLocalResourceLocations
protected String[] getLocalResourceLocations()
- Specified by:
getLocalResourceLocations in class AbstractArtifactClassLoader
Copyright © 2003–2014 MuleSoft, Inc.. All rights reserved.