use of org.apache.cxf.service.invoker.FactoryInvoker in project cxf by apache.
the class AnnotationsFactoryBeanListener method setScope.
private void setScope(Server server, Class<?> cls) {
FactoryType scope = cls.getAnnotation(FactoryType.class);
if (scope != null) {
Invoker i = server.getEndpoint().getService().getInvoker();
if (i instanceof FactoryInvoker) {
Factory f;
if (scope.factoryClass() == FactoryType.DEFAULT.class) {
switch(scope.value()) {
case Session:
if (scope.args().length > 0) {
f = new SessionFactory(cls, Boolean.parseBoolean(scope.args()[0]));
} else {
f = new SessionFactory(cls);
}
break;
case PerRequest:
f = new PerRequestFactory(cls);
break;
case Pooled:
f = new PooledFactory(cls, Integer.parseInt(scope.args()[0]));
break;
default:
f = new SingletonFactory(cls);
break;
}
} else {
try {
f = scope.factoryClass().getConstructor(Class.class, String[].class).newInstance(cls, scope.args());
} catch (Throwable t) {
throw new ServiceConstructionException(t);
}
}
((FactoryInvoker) i).setFactory(f);
}
}
}
use of org.apache.cxf.service.invoker.FactoryInvoker in project cxf by apache.
the class AbstractValidationInterceptor method getServiceObject.
protected Object getServiceObject(Message message) {
if (serviceObject != null) {
return serviceObject;
}
Object current = message.getExchange().get(Message.SERVICE_OBJECT);
if (current != null) {
return current;
}
Endpoint e = message.getExchange().getEndpoint();
if (e != null && e.getService() != null) {
Invoker invoker = e.getService().getInvoker();
if (invoker instanceof FactoryInvoker) {
FactoryInvoker factoryInvoker = (FactoryInvoker) invoker;
if (factoryInvoker.isSingletonFactory()) {
return factoryInvoker.getServiceObject(message.getExchange());
}
}
}
return null;
}
Aggregations