package se.sperber.cryson.spring; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEvent; import org.springframework.context.MessageSourceResolvable; import org.springframework.context.NoSuchMessageException; import org.springframework.core.env.Environment; import org.springframework.core.io.Resource; import org.springframework.web.context.WebApplicationContext; import javax.servlet.ServletContext; import java.io.IOException; import java.lang.annotation.Annotation; import java.util.Locale; import java.util.Map; public class WrappingWebApplicationContext implements WebApplicationContext { private final ServletContext servletContext; private final ApplicationContext wrappedContext; public WrappingWebApplicationContext(ServletContext servletContext, ApplicationContext wrappedContext) { this.servletContext = servletContext; this.wrappedContext = wrappedContext; } @Override public ServletContext getServletContext() { return servletContext; } @Override public String getId() { return wrappedContext.getId(); } @Override public String getApplicationName() { return wrappedContext.getApplicationName(); } @Override public String getDisplayName() { return wrappedContext.getDisplayName(); } @Override public long getStartupDate() { return wrappedContext.getStartupDate(); } @Override public ApplicationContext getParent() { return wrappedContext.getParent(); } @Override public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { return wrappedContext.getAutowireCapableBeanFactory(); } @Override public void publishEvent(ApplicationEvent applicationEvent) { wrappedContext.publishEvent(applicationEvent); } @Override public BeanFactory getParentBeanFactory() { return wrappedContext.getParentBeanFactory(); } @Override public boolean containsLocalBean(String s) { return wrappedContext.containsLocalBean(s); } @Override public boolean containsBeanDefinition(String s) { return wrappedContext.containsBeanDefinition(s); } @Override public int getBeanDefinitionCount() { return wrappedContext.getBeanDefinitionCount(); } @Override public String[] getBeanDefinitionNames() { return wrappedContext.getBeanDefinitionNames(); } @Override public String[] getBeanNamesForType(Class<?> aClass) { return wrappedContext.getBeanNamesForType(aClass); } @Override public String[] getBeanNamesForType(Class<?> aClass, boolean b, boolean b1) { return wrappedContext.getBeanNamesForType(aClass, b, b1); } @Override public <T> Map<String, T> getBeansOfType(Class<T> aClass) throws BeansException { return wrappedContext.getBeansOfType(aClass); } @Override public <T> Map<String, T> getBeansOfType(Class<T> aClass, boolean b, boolean b1) throws BeansException { return wrappedContext.getBeansOfType(aClass, b, b1); } @Override public String[] getBeanNamesForAnnotation(Class<? extends Annotation> aClass) { return wrappedContext.getBeanNamesForAnnotation(aClass); } @Override public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> aClass) throws BeansException { return null; } @Override public <A extends Annotation> A findAnnotationOnBean(String s, Class<A> aClass) throws NoSuchBeanDefinitionException { return wrappedContext.findAnnotationOnBean(s, aClass); } @Override public Object getBean(String s) throws BeansException { return wrappedContext.getBean(s); } @Override public <T> T getBean(String s, Class<T> aClass) throws BeansException { return wrappedContext.getBean(s, aClass); } @Override public <T> T getBean(Class<T> aClass) throws BeansException { return getBean(aClass); } @Override public Object getBean(String s, Object... objects) throws BeansException { return wrappedContext.getBean(s, objects); } @Override public <T> T getBean(Class<T> aClass, Object... objects) throws BeansException { return wrappedContext.getBean(aClass, objects); } @Override public boolean containsBean(String s) { return wrappedContext.containsBean(s); } @Override public boolean isSingleton(String s) throws NoSuchBeanDefinitionException { return wrappedContext.isSingleton(s); } @Override public boolean isPrototype(String s) throws NoSuchBeanDefinitionException { return wrappedContext.isPrototype(s); } @Override public boolean isTypeMatch(String s, Class<?> aClass) throws NoSuchBeanDefinitionException { return wrappedContext.isTypeMatch(s, aClass); } @Override public Class<?> getType(String s) throws NoSuchBeanDefinitionException { return wrappedContext.getType(s); } @Override public String[] getAliases(String s) { return wrappedContext.getAliases(s); } @Override public Environment getEnvironment() { return wrappedContext.getEnvironment(); } @Override public String getMessage(String s, Object[] objects, String s1, Locale locale) { return wrappedContext.getMessage(s, objects, s1, locale); } @Override public String getMessage(String s, Object[] objects, Locale locale) throws NoSuchMessageException { return wrappedContext.getMessage(s, objects, locale); } @Override public String getMessage(MessageSourceResolvable messageSourceResolvable, Locale locale) throws NoSuchMessageException { return wrappedContext.getMessage(messageSourceResolvable, locale); } @Override public Resource[] getResources(String s) throws IOException { return wrappedContext.getResources(s); } @Override public Resource getResource(String s) { return wrappedContext.getResource(s); } @Override public ClassLoader getClassLoader() { return wrappedContext.getClassLoader(); } }