package org.jboss.resteasy.plugins.spring; import org.jboss.resteasy.spi.HttpRequest; import org.jboss.resteasy.spi.HttpResponse; import org.jboss.resteasy.spi.PropertyInjector; import org.jboss.resteasy.spi.ResourceFactory; import org.jboss.resteasy.spi.ResteasyProviderFactory; import org.springframework.beans.factory.BeanFactory; /** * * * @author <a href="mailto:sduskis@gmail.com">Solomn Duskis</a> * @version $Revision: 1 $ */ public class SpringResourceFactory implements ResourceFactory { protected BeanFactory beanFactory; protected String beanName; protected Class<?> scannableClass; protected PropertyInjector propertyInjector; protected String context = null; public SpringResourceFactory(String beanName, BeanFactory beanFactory, Class<?> scannable) { this.beanName = beanName; this.beanFactory = beanFactory; this.scannableClass = scannable; } public PropertyInjector getPropertyInjector() { return propertyInjector; } public Object createResource(HttpRequest request, HttpResponse response, ResteasyProviderFactory factory) { return beanFactory.getBean(beanName); } public Class<?> getScannableClass() { return scannableClass; } public void registered(ResteasyProviderFactory factory) { this.propertyInjector = factory.getInjectorFactory().createPropertyInjector(getScannableClass(), factory); } public void requestFinished(HttpRequest request, HttpResponse response, Object resource) { } public void unregistered() { } public String getBeanName() { return beanName; } public void setContext(String context) { this.context = context; } public String getContext() { return context; } }