package org.jboss.resteasy.plugins.spring; import org.jboss.resteasy.core.Dispatcher; import org.jboss.resteasy.spi.Registry; import org.jboss.resteasy.spi.ResteasyDeployment; import org.jboss.resteasy.spi.ResteasyProviderFactory; import org.springframework.web.context.ServletContextAware; import javax.servlet.ServletContext; /** * Use this subclass of SpringBeanProcessor if you are manually applying the SpringBeanProcessor for Resteasy. This assumes that the * Registry and ResteasyProviderFactory objects are registered as attributes in the ServletContext * * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ */ public class SpringBeanProcessorServletAware extends SpringBeanProcessor implements ServletContextAware { protected ServletContext servletContext; public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @Override public Registry getRegistry() { if (registry != null) return registry; ResteasyDeployment deployment = (ResteasyDeployment) servletContext.getAttribute(ResteasyDeployment.class.getName()); if (deployment != null) { registry = deployment.getRegistry(); } return registry; } @Override public ResteasyProviderFactory getProviderFactory() { if (providerFactory != null) return providerFactory; ResteasyDeployment deployment = (ResteasyDeployment) servletContext.getAttribute(ResteasyDeployment.class.getName()); if (deployment != null) { providerFactory = deployment.getProviderFactory(); } return providerFactory; } @Override public Dispatcher getDispatcher() { if (dispatcher != null) return dispatcher; ResteasyDeployment deployment = (ResteasyDeployment) servletContext.getAttribute(ResteasyDeployment.class.getName()); if (deployment != null) { dispatcher = deployment.getDispatcher(); } return dispatcher; } }