.. java:import:: org.apache.felix.framework BundleWiringImpl .. java:import:: org.datanucleus ClassLoaderResolver .. java:import:: org.eclipse.gemini.blueprint.util OsgiBundleUtils .. java:import:: org.motechproject.mds.util Constants .. java:import:: org.osgi.framework Bundle .. java:import:: org.osgi.framework BundleContext .. java:import:: org.osgi.framework FrameworkUtil .. java:import:: org.osgi.framework.wiring BundleWiring .. java:import:: java.io IOException .. java:import:: java.net URL .. java:import:: java.util Enumeration MDSClassLoaderResolver ====================== .. java:package:: org.motechproject.mds.jdo :noindex: .. java:type:: public class MDSClassLoaderResolver implements ClassLoaderResolver This is a wrapper for \ :java:ref:`org.motechproject.mds.jdo.MDSClassLoaderResolverImpl`\ . All calls for the \ :java:ref:`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 ^^^^^^^^^^^^^^^^^^^^^^ .. java:constructor:: public MDSClassLoaderResolver() :outertype: MDSClassLoaderResolver MDSClassLoaderResolver ^^^^^^^^^^^^^^^^^^^^^^ .. java:constructor:: public MDSClassLoaderResolver(ClassLoader pmLoader) :outertype: MDSClassLoaderResolver Methods ------- classForName ^^^^^^^^^^^^ .. java:method:: @Override public Class classForName(String name, ClassLoader primary) :outertype: MDSClassLoaderResolver classForName ^^^^^^^^^^^^ .. java:method:: @Override public Class classForName(String name, ClassLoader primary, boolean initialize) :outertype: MDSClassLoaderResolver classForName ^^^^^^^^^^^^ .. java:method:: @Override public Class classForName(String name) :outertype: MDSClassLoaderResolver classForName ^^^^^^^^^^^^ .. java:method:: @Override public Class classForName(String name, boolean initialize) :outertype: MDSClassLoaderResolver getResource ^^^^^^^^^^^ .. java:method:: @Override public URL getResource(String resourceName, ClassLoader primary) :outertype: MDSClassLoaderResolver getResources ^^^^^^^^^^^^ .. java:method:: @Override public Enumeration getResources(String resourceName, ClassLoader primary) throws IOException :outertype: MDSClassLoaderResolver isAssignableFrom ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isAssignableFrom(String className, Class clazz) :outertype: MDSClassLoaderResolver isAssignableFrom ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isAssignableFrom(Class clazz, String className) :outertype: MDSClassLoaderResolver isAssignableFrom ^^^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isAssignableFrom(String className1, String className2) :outertype: MDSClassLoaderResolver registerUserClassLoader ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public void registerUserClassLoader(ClassLoader loader) :outertype: MDSClassLoaderResolver setPrimary ^^^^^^^^^^ .. java:method:: @Override public void setPrimary(ClassLoader primary) :outertype: MDSClassLoaderResolver setRuntimeClassLoader ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public void setRuntimeClassLoader(ClassLoader loader) :outertype: MDSClassLoaderResolver unsetPrimary ^^^^^^^^^^^^ .. java:method:: @Override public void unsetPrimary() :outertype: MDSClassLoaderResolver