// Copyright © 2011-2013, Esko Luontola <www.orfjackal.net> // This software is released under the Apache License 2.0. // The license text is at http://www.apache.org/licenses/LICENSE-2.0 package fi.jumi.core.util; import javax.annotation.concurrent.ThreadSafe; import java.util.concurrent.ThreadFactory; @ThreadSafe public class ContextClassLoaderThreadFactory implements ThreadFactory { private final ClassLoader contextClassLoader; private final ThreadFactory delegate; public ContextClassLoaderThreadFactory(ClassLoader contextClassLoader, ThreadFactory delegate) { this.contextClassLoader = contextClassLoader; this.delegate = delegate; } @Override public Thread newThread(Runnable r) { Thread thread = delegate.newThread(r); thread.setContextClassLoader(contextClassLoader); return thread; } }