org.springframework.util.ClassUtils#overrideThreadContextClassLoader ( )源码实例Demo

下面列出了org.springframework.util.ClassUtils#overrideThreadContextClassLoader ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
public void componentScanJarFunction() {
	try {
		create("greeter.jar", ComponentScanJarConfiguration.class);
		assertThat(this.context.getBean("greeter")).isInstanceOf(Function.class);
		assertThat((Function<?, ?>) this.catalog.lookup(Function.class, "greeter"))
				.isInstanceOf(Function.class);
		assertThat(this.inspector
				.getInputType(this.catalog.lookup(Function.class, "greeter")))
						.isAssignableFrom(String.class);
		assertThat(this.inspector
				.getInputWrapper(this.catalog.lookup(Function.class, "greeter")))
						.isAssignableFrom(String.class);
	}
	finally {
		ClassUtils.overrideThreadContextClassLoader(getClass().getClassLoader());
	}
}
 
源代码2 项目: spring-init   文件: LauncherState.java
@Override
@TearDown(Level.Invocation)
public void close() throws IOException {
	// CachedIntrospectionResults.clearClassLoader(getClass().getClassLoader());
	if (instance != null) {
		instance.close();
	}
	if (runThread != null) {
		runThread.setContextClassLoader(null);
		runThread = null;
	}
	if (orig != null) {
		ClassUtils.overrideThreadContextClassLoader(orig);
	}
	if (loader != null) {
		try {
			loader.close();
			loader = null;
		}
		catch (Exception e) {
			System.err.println("Failed to close loader " + e);
		}
	}
	System.gc();
	for (Object key : this.args.keySet()) {
		System.clearProperty(key.toString());
	}
}
 
源代码3 项目: spring-init   文件: LauncherState.java
private Class<?> loadMainClass(Class<?> type) throws ClassNotFoundException {
	URL[] urls = filterClassPath(
			((URLClassLoader) getClass().getClassLoader()).getURLs());
	loader = new URLClassLoader(urls, getClass().getClassLoader().getParent());
	orig = ClassUtils.overrideThreadContextClassLoader(loader);
	return loader.loadClass(type.getName());
}
 
private void create(String jarfile, Class<?> config, String... props) {
	try {
		URL[] urls = new URL[] { new ClassPathResource(jarfile).getURL() };
		ClassUtils.overrideThreadContextClassLoader(
				new URLClassLoader(urls, getClass().getClassLoader()));
		create(config, props);
	}
	catch (Exception e) {
		ReflectionUtils.rethrowRuntimeException(e);
	}
}
 
源代码5 项目: spring-cloud-function   文件: IsolatedFunction.java
@Override
public T apply(S item) {
	ClassLoader context = ClassUtils
			.overrideThreadContextClassLoader(this.classLoader);
	try {
		return this.function.apply(item);
	}
	finally {
		ClassUtils.overrideThreadContextClassLoader(context);
	}
}
 
源代码6 项目: spring-cloud-function   文件: IsolatedConsumer.java
@Override
public void accept(T item) {
	ClassLoader context = ClassUtils
			.overrideThreadContextClassLoader(this.classLoader);
	try {
		this.consumer.accept(item);
	}
	finally {
		ClassUtils.overrideThreadContextClassLoader(context);
	}
}
 
源代码7 项目: spring-cloud-function   文件: IsolatedSupplier.java
@Override
public T get() {
	ClassLoader context = ClassUtils
			.overrideThreadContextClassLoader(this.classLoader);
	try {
		return this.supplier.get();
	}
	finally {
		ClassUtils.overrideThreadContextClassLoader(context);
	}
}
 
源代码8 项目: niubi-job   文件: SpringJobBeanFactory.java
/**
 * 该构造函数用于集群环境
 *
 * @throws BeansException
 */
public SpringJobBeanFactory(ClassLoader classLoader) throws BeansException {
    this.classLoader = classLoader;
    ClassUtils.overrideThreadContextClassLoader(classLoader);
    this.applicationContext = new ClassPathXmlApplicationContext(JobScanner.APPLICATION_CONTEXT_XML_PATH);
}
 
源代码9 项目: spring-cloud-commons   文件: RestartEndpoint.java
private void overrideClassLoaderForRestart() {
	ClassUtils.overrideThreadContextClassLoader(
			this.application.getClass().getClassLoader());
}
 
源代码10 项目: spring-analysis-note   文件: RemotingSupport.java
/**
 * Override the thread context ClassLoader with the environment's bean ClassLoader
 * if necessary, i.e. if the bean ClassLoader is not equivalent to the thread
 * context ClassLoader already.
 * @return the original thread context ClassLoader, or {@code null} if not overridden
 */
@Nullable
protected ClassLoader overrideThreadContextClassLoader() {
	return ClassUtils.overrideThreadContextClassLoader(getBeanClassLoader());
}
 
源代码11 项目: java-technology-stack   文件: RemotingSupport.java
/**
 * Override the thread context ClassLoader with the environment's bean ClassLoader
 * if necessary, i.e. if the bean ClassLoader is not equivalent to the thread
 * context ClassLoader already.
 * @return the original thread context ClassLoader, or {@code null} if not overridden
 */
@Nullable
protected ClassLoader overrideThreadContextClassLoader() {
	return ClassUtils.overrideThreadContextClassLoader(getBeanClassLoader());
}
 
源代码12 项目: lams   文件: RemotingSupport.java
/**
 * Override the thread context ClassLoader with the environment's bean ClassLoader
 * if necessary, i.e. if the bean ClassLoader is not equivalent to the thread
 * context ClassLoader already.
 * @return the original thread context ClassLoader, or {@code null} if not overridden
 */
protected ClassLoader overrideThreadContextClassLoader() {
	return ClassUtils.overrideThreadContextClassLoader(getBeanClassLoader());
}
 
源代码13 项目: spring4-understanding   文件: RemotingSupport.java
/**
 * Override the thread context ClassLoader with the environment's bean ClassLoader
 * if necessary, i.e. if the bean ClassLoader is not equivalent to the thread
 * context ClassLoader already.
 * @return the original thread context ClassLoader, or {@code null} if not overridden
 */
protected ClassLoader overrideThreadContextClassLoader() {
	return ClassUtils.overrideThreadContextClassLoader(getBeanClassLoader());
}