MDSClassLoaderResolver

public class MDSClassLoaderResolver implements ClassLoaderResolver

This is a wrapper for org.motechproject.mds.jdo.MDSClassLoaderResolverImpl. All calls for the org.datanucleus.ClassLoaderResolver interface are passed to the current instance of the ClassLoaderResolver implementation. When we hit a NullPointerException originating in Felix, we can determine it is due to a synchronization bug after bundle updates - as a result of this DataNucleus has passed us ClassLoaders from the former Bundle version. In that case we reload the instance passing it the ClassLoaders from the new bundle.

Constructors

MDSClassLoaderResolver

public MDSClassLoaderResolver()

MDSClassLoaderResolver

public MDSClassLoaderResolver(ClassLoader pmLoader)

Methods

classForName

public Class classForName(String name, ClassLoader primary)

classForName

public Class classForName(String name, ClassLoader primary, boolean initialize)

classForName

public Class classForName(String name)

classForName

public Class classForName(String name, boolean initialize)

getResource

public URL getResource(String resourceName, ClassLoader primary)

getResources

public Enumeration<URL> getResources(String resourceName, ClassLoader primary)

isAssignableFrom

public boolean isAssignableFrom(String className, Class clazz)

isAssignableFrom

public boolean isAssignableFrom(Class clazz, String className)

isAssignableFrom

public boolean isAssignableFrom(String className1, String className2)

registerUserClassLoader

public void registerUserClassLoader(ClassLoader loader)

setPrimary

public void setPrimary(ClassLoader primary)

setRuntimeClassLoader

public void setRuntimeClassLoader(ClassLoader loader)

unsetPrimary

public void unsetPrimary()