package org.infinispan.commons.marshall.jboss; import java.lang.ref.WeakReference; import org.jboss.marshalling.ContextClassResolver; /** * This class refines <code>ContextClassLoader</code> to add a default class loader. * The context class loader is only used when the default is <code>null</code>. * * @author Dan Berindei <dberinde@redhat.com> * @since 4.2 */ public class DefaultContextClassResolver extends ContextClassResolver { private WeakReference<ClassLoader> defaultClassLoader; public DefaultContextClassResolver(ClassLoader defaultClassLoader) { this.defaultClassLoader = new WeakReference<ClassLoader>(defaultClassLoader); } @Override protected ClassLoader getClassLoader() { ClassLoader defaultLoader = this.defaultClassLoader.get(); return defaultLoader != null ? defaultLoader : super.getClassLoader(); } }