public <T extends Throwable> ExceptionMapper<T> getExceptionMapper(Class<T> type) { return ServerProviderFactory.getInstance(m).createExceptionMapper(type, m); } private Type getGenericType(Class<?> type, Type genericType) {
public static void releaseRequestState(Message message) { releaseRequestState(ServerProviderFactory.getInstance(message), message); } public static void releaseRequestState(ServerProviderFactory factory, Message message) {
public static void clearThreadLocalProxies(Message message) { clearThreadLocalProxies(ServerProviderFactory.getInstance(message), message); } public static void clearThreadLocalProxies(ServerProviderFactory factory, Message message) {
private boolean paramConverterAvailable(final Class<?> pClass) { Message m = JAXRSUtils.getCurrentMessage(); ServerProviderFactory pf = m == null ? null : ServerProviderFactory.getInstance(m); return pf != null && pf.createParameterHandler(pClass, pClass, EMPTY_ANNOTTAIONS, m) != null; }
public void handleMessage(Message message) { ServerProviderFactory providerFactory = ServerProviderFactory.getInstance(message); try { processResponse(providerFactory, message); } finally { ServerProviderFactory.releaseRequestState(providerFactory, message); } }
private boolean paramConverterAvailable(final Class<?> pClass) { Message m = JAXRSUtils.getCurrentMessage(); ServerProviderFactory pf = m == null ? null : ServerProviderFactory.getInstance(m); return pf != null && pf.createParameterHandler(pClass, pClass, EMPTY_ANNOTTAIONS, m) != null; }
public static <T> T createFromParameterHandler(String value, Class<T> pClass, Type genericType, Annotation[] anns, Message message) { T result = null; if (message != null) { ServerProviderFactory pf = ServerProviderFactory.getInstance(message); ParamConverter<T> pm = pf.createParameterHandler(pClass, genericType, anns, message); if (pm != null) { result = pm.fromString(value); } } return result; }
public static Object createBeanParamValue(Message m, Class<?> clazz, OperationResourceInfo ori) { BeanParamInfo bmi = ServerProviderFactory.getInstance(m).getBeanParamInfo(clazz); if (bmi == null) { // we could've started introspecting now but the fact no bean info // is available indicates that the one created at start up has been // lost and hence it is 500 LOG.warning("Bean parameter info is not available"); throw ExceptionUtils.toInternalServerErrorException(null, null); } Object instance; try { instance = clazz.newInstance(); } catch (Throwable t) { throw ExceptionUtils.toInternalServerErrorException(t, null); } JAXRSUtils.injectParameters(ori, bmi, instance, m); InjectionUtils.injectContexts(instance, bmi, m); return instance; }
@Override public SseEventSink createContext(Message message) { final HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST); if (request == null) { throw new IllegalStateException("Unable to retrieve HTTP request from the context"); } final MessageBodyWriter<OutboundSseEvent> writer = new OutboundSseEventBodyWriter( ServerProviderFactory.getInstance(message), message.getExchange()); final AsyncResponse async = new AsyncResponseImpl(message); return new SseEventSinkImpl(writer, async, request.getAsyncContext()); } }
@Override public SseEventSink createContext(Message message) { final HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST); if (request == null) { throw new IllegalStateException("Unable to retrieve HTTP request from the context"); } final MessageBodyWriter<OutboundSseEvent> writer = new OutboundSseEventBodyWriter( ServerProviderFactory.getInstance(message), message.getExchange()); final AsyncResponse async = new AsyncResponseImpl(message); return new SseEventSinkImpl(writer, async, request.getAsyncContext()); } }
? ServerProviderFactory.getInstance(m).getDefaultJaxbWriter() : null; ResourceTypes resourceTypes = ResourceUtils.getAllRequestResponseTypes(cris, useJaxbContextForQnames,
private <T> T doInitResource(Class<?> cls, T resource) { ClassResourceInfo sub = cri.getSubResource(subClass, cls, resource, true, m); sub.initBeanParamInfo(ServerProviderFactory.getInstance(m)); sub.injectContexts(resource, m.getExchange().get(OperationResourceInfo.class), m); return resource; } }
ServerProviderFactory.getInstance(inMessage).createExceptionMapper(ex.getClass(), inMessage); if (mapper != null) { try {
? ServerProviderFactory.getInstance(m).getDefaultJaxbWriter() : null; ResourceTypes resourceTypes = ResourceUtils.getAllRequestResponseTypes(cris, useJaxbContextForQnames,
final ProviderFactory pf = ServerProviderFactory.getInstance(m); for (MediaType type : types) { List<ReaderInterceptor> readers = pf.createMessageBodyReaderInterceptor(
if (cri != null) { if (message != null) { cri.initBeanParamInfo(ServerProviderFactory.getInstance(message));
/** * Configure the task. * * @param task * The batch task. */ public void configure(final BatchTaskVo<B> task) { this.task = task; this.task.getStatus().setStart(new Date()); this.task.getStatus().setEntries(task.getEntries().size()); // Save the CXF factory for JSON serialization this.jaxrsFactory = getMessage() == null ? ServerProviderFactory.getInstance() : (ServerProviderFactory) getMessage().getExchange().getEndpoint() .get("org.apache.cxf.jaxrs.provider.ServerProviderFactory"); }
private void convertExceptionToResponseIfPossible(Throwable ex, Message message) { Response excResponse = JAXRSUtils.convertFaultToResponse(ex, message); if (excResponse == null) { ServerProviderFactory.getInstance(message).clearThreadLocalProxies(); message.getExchange().put(Message.PROPOGATE_EXCEPTION, ExceptionUtils.propogateException(message)); throw ex instanceof RuntimeException ? (RuntimeException)ex : ExceptionUtils.toInternalServerErrorException(ex, null); } message.getExchange().put(Response.class, excResponse); message.getExchange().put(Throwable.class, ex); }
private void processRequest(Message message, Exchange exchange) throws IOException { ServerProviderFactory providerFactory = ServerProviderFactory.getInstance(message);
public void handleMessage(Message message) { final Exchange exchange = message.getExchange(); exchange.put(Message.REST_MESSAGE, Boolean.TRUE); Response response = exchange.get(Response.class); if (response == null) { try { processRequest(message, exchange); if (exchange.isOneWay()) { ServerProviderFactory.getInstance(message).clearThreadLocalProxies(); } } catch (Fault ex) { convertExceptionToResponseIfPossible(ex.getCause(), message); } catch (RuntimeException ex) { convertExceptionToResponseIfPossible(ex, message); } catch (IOException ex) { convertExceptionToResponseIfPossible(ex, message); } } response = exchange.get(Response.class); if (response != null) { createOutMessage(message, response); message.getInterceptorChain().doInterceptStartingAt(message, OutgoingChainInterceptor.class.getName()); } }