package org.jboss.resteasy.test.cdi.injection.resource;
import org.jboss.resteasy.spi.HttpRequest;
import org.jboss.resteasy.spi.HttpResponse;
import org.jboss.resteasy.spi.ResourceFactory;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
public class LazyInitUriInfoInjectionSingletonResource implements ResourceFactory {
private Class clazz;
private Object obj;
public LazyInitUriInfoInjectionSingletonResource(final Class clazz) {
this.clazz = clazz;
}
@Override
public void registered(ResteasyProviderFactory factory) {
}
public Object createResource(HttpRequest request, HttpResponse response, ResteasyProviderFactory factory) {
if (obj == null) {
try {
obj = clazz.newInstance();
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
factory.getInjectorFactory().createPropertyInjector(clazz, factory).inject(obj);
}
return obj;
}
public void unregistered() {
}
public Class<?> getScannableClass() {
return clazz;
}
public void requestFinished(HttpRequest request, HttpResponse response, Object resource) {
}
}