package org.apereo.cas.util.spring;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
/**
* @author Misagh Moayyed
* An implementation of {@link ApplicationContextAware} that statically
* holds the application context
* @since 3.0.0.
*/
public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
public static ApplicationContext getApplicationContext() {
return CONTEXT;
}
@Override
public void setApplicationContext(final ApplicationContext ctx) {
CONTEXT = ctx;
}
public ConfigurableApplicationContext getConfigurableApplicationContext() {
return (ConfigurableApplicationContext) CONTEXT;
}
public AutowireCapableBeanFactory getAutowireCapableBeanFactory() {
return getConfigurableApplicationContext().getAutowireCapableBeanFactory();
}
}