public static Object createResourceValue(Message m, Type genericType, Class<?> clazz) { // lets assume we're aware of servlet types only that can be @Resource-annotated return createContextValue(m, genericType, clazz); }
protected <T> T getContext(Type genericType, Class<T> clazz) { return JAXRSUtils.createContextValue(m, genericType, clazz); }
public static Object createResourceValue(Message m, Type genericType, Class<?> clazz) { // lets assume we're aware of servlet types only that can be @Resource-annotated return createContextValue(m, genericType, clazz); }
private static javax.ws.rs.core.Application findApplication(final Message m) { return JAXRSUtils.createContextValue(m, javax.ws.rs.core.Application.class, javax.ws.rs.core.Application.class); }
protected <T> T getContext(Type genericType, Class<T> clazz) { return JAXRSUtils.createContextValue(m, genericType, clazz); }
private Object createContextValue() { Message currentMessage = PhaseInterceptorChain.getCurrentMessage(); Type genericType = null; Class<?> contextType; if (type instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType)type; genericType = parameterizedType.getActualTypeArguments()[0]; contextType = (Class<?>)parameterizedType.getRawType(); } else { contextType = (Class<?>)type; } return JAXRSUtils.createContextValue(currentMessage, genericType, contextType); }
public static <T> T find(final Class<T> clazz) { final Message m = PhaseInterceptorChain.getCurrentMessage(); if (m != null) { return JAXRSUtils.createContextValue(m, null, clazz); } final Exchange exchange = EXCHANGE.get(); if (exchange == null) { throw new IllegalStateException("No CXF message usable for JAX-RS @Context injections in that thread so can't use " + clazz); } return JAXRSUtils.createContextValue(exchange.getInMessage(), null, clazz); }
private MessageContext createMessageContext() { return JAXRSUtils.createContextValue(JAXRSUtils.getCurrentMessage(), null, MessageContext.class); } }
private MessageContext createMessageContext() { return JAXRSUtils.createContextValue( JAXRSUtils.getCurrentMessage(), null, MessageContext.class); }
private Object createContextValue() { Message currentMessage = PhaseInterceptorChain.getCurrentMessage(); Type genericType = null; Class<?> contextType; if (type instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType)type; genericType = parameterizedType.getActualTypeArguments()[0]; contextType = (Class<?>)parameterizedType.getRawType(); } else { contextType = (Class<?>)type; } return JAXRSUtils.createContextValue(currentMessage, genericType, contextType); }
private MessageContext createMessageContext() { return JAXRSUtils.createContextValue( JAXRSUtils.getCurrentMessage(), null, MessageContext.class); }
private MessageContext createMessageContext() { return JAXRSUtils.createContextValue(JAXRSUtils.getCurrentMessage(), null, MessageContext.class); } }
@SuppressWarnings("unchecked") public static void injectConstructorProxies(Object o, AbstractResourceInfo cri, Message m) { Map<Class<?>, ThreadLocalProxy<?>> proxies = cri.getConstructorProxies(); if (proxies != null) { for (Map.Entry<Class<?>, ThreadLocalProxy<?>> entry : proxies.entrySet()) { Object value = JAXRSUtils.createContextValue(m, entry.getKey(), entry.getKey()); ((ThreadLocalProxy<Object>)entry.getValue()).set(value); } } }
public static void injectContextFields(Object o, AbstractResourceInfo cri, Message m) { for (Field f : cri.getContextFields()) { if (VALUE_CONTEXTS.contains(f.getType().getName()) && cri.isSingleton()) { continue; } Object value = JAXRSUtils.createContextValue(m, f.getGenericType(), f.getType()); InjectionUtils.injectContextField(cri, f, o, value); } }
public static void injectContextFields(Object o, AbstractResourceInfo cri, Message m) { for (Field f : cri.getContextFields()) { if (f.getType() == Application.class && cri.isSingleton()) { continue; } Object value = JAXRSUtils.createContextValue(m, f.getGenericType(), f.getType()); InjectionUtils.injectContextField(cri, f, o, value); } }
public static Object[] createConstructorArguments(Constructor<?> c, Message m) { Class<?>[] params = c.getParameterTypes(); Annotation[][] anns = c.getParameterAnnotations(); Type[] genericTypes = c.getGenericParameterTypes(); @SuppressWarnings("unchecked") MultivaluedMap<String, String> templateValues = m == null ? null : (MultivaluedMap<String, String>)m.get(URITemplate.TEMPLATE_PARAMETERS); Object[] values = new Object[params.length]; for (int i = 0; i < params.length; i++) { if (AnnotationUtils.getAnnotation(anns[i], Context.class) != null) { values[i] = JAXRSUtils.createContextValue(m, genericTypes[i], params[i]); } else { Parameter p = ResourceUtils.getParameter(i, anns[i], params[i]); values[i] = JAXRSUtils.createHttpParameterValue( p, params[i], genericTypes[i], anns[i], m, templateValues, null); } } return values; } public static JAXRSServerFactoryBean createApplication(Application app, boolean ignoreAppPath) {
@SuppressWarnings("unchecked") public static void injectContextMethods(Object requestObject, AbstractResourceInfo cri, Message message) { for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) { Method method = entry.getValue(); if (VALUE_CONTEXTS.contains(method.getParameterTypes()[0].getName()) && cri.isSingleton()) { continue; } Object o = JAXRSUtils.createContextValue(message, method.getGenericParameterTypes()[0], entry.getKey()); if (o != null) { if (!cri.isSingleton()) { InjectionUtils.injectThroughMethod(requestObject, method, o, message); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextSetterProxy(method); if (proxy != null) { proxy.set(o); } } } } }
@Override public OpenAPIConfiguration customize(final OpenAPIConfiguration configuration) { super.customize(configuration); MessageContext ctx = JAXRSUtils.createContextValue( JAXRSUtils.getCurrentMessage(), null, MessageContext.class); String url = StringUtils.substringBeforeLast(ctx.getUriInfo().getRequestUri().getRawPath(), "/"); configuration.getOpenAPI().setServers(Collections.singletonList(new Server().url(url))); return configuration; }
@SuppressWarnings("unchecked") public static void injectContextMethods(Object requestObject, AbstractResourceInfo cri, Message message) { for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) { Method method = entry.getValue(); if (method.getParameterTypes()[0] == Application.class && cri.isSingleton()) { continue; } Object o = JAXRSUtils.createContextValue(message, method.getGenericParameterTypes()[0], entry.getKey()); if (o != null) { if (!cri.isSingleton()) { InjectionUtils.injectThroughMethod(requestObject, method, o, message); } else { ThreadLocalProxy<Object> proxy = (ThreadLocalProxy<Object>)cri.getContextSetterProxy(method); if (proxy != null) { proxy.set(o); } } } } }
private static Object processParameter(Class<?> parameterClass, Type parameterType, Annotation[] parameterAnns, Parameter parameter, MultivaluedMap<String, String> values, Message message, OperationResourceInfo ori) throws IOException, WebApplicationException { if (parameter.getType() == ParameterType.REQUEST_BODY) { return processRequestBodyParameter(parameterClass, parameterType, parameterAnns, message, ori); } else if (parameter.getType() == ParameterType.CONTEXT) { return createContextValue(message, parameterType, parameterClass); } else if (parameter.getType() == ParameterType.BEAN) { return createBeanParamValue(message, parameterClass, ori); } else { return createHttpParameterValue(parameter, parameterClass, parameterType, parameterAnns, message, values, ori); } }