public ResourceContextImpl(Message m, OperationResourceInfo ori) { this.m = m; this.cri = ori.getClassResourceInfo(); this.subClass = ori.getMethodToInvoke().getReturnType(); }
public ResourceContextImpl(OperationResourceInfo ori) { this.cri = ori.getClassResourceInfo(); this.subClass = ori.getMethodToInvoke().getReturnType(); }
@Override public Class<?> getResourceClass() { return ori == null ? null : ori.getClassResourceInfo().getServiceClass(); }
@Override public Class<?> getResourceClass() { return ori == null ? null : ori.getClassResourceInfo().getResourceClass(); }
public MethodConfigurable(OperationResourceInfo ori) { this.ori = ori; nameBinding = DEFAULT_FILTER_NAME_BINDING + ori.getClassResourceInfo().getServiceClass().getName() + "." + ori.getMethodToInvoke().toString() + ":dynamic"; }
@Override public int compare(OperationResourceInfo oper1, OperationResourceInfo oper2, Message message) { return compareByServiceClass(oper1.getClassResourceInfo().getServiceClass(), oper2.getClassResourceInfo().getServiceClass(), message); }
@SuppressWarnings("UnusedDeclaration") public static void bind(final Exchange exchange) { if (exchange == null) { return; } final ClassResourceInfo cri = exchange.get(OperationResourceInfo.class).getClassResourceInfo(); // binding context fields final Set<Class<?>> types = new HashSet<Class<?>>(); for (final Field field : cri.getContextFields()) { types.add(field.getType()); } bind(exchange, types); }
public RedbackAuthorization getRedbackAuthorization( Message message ) { OperationResourceInfo operationResourceInfo = message.getExchange().get( OperationResourceInfo.class ); if ( operationResourceInfo == null ) { return null; } Method method = operationResourceInfo.getAnnotatedMethod(); RedbackAuthorization redbackAuthorization = method.getAnnotation( RedbackAuthorization.class ); log.debug( "class {}, resourceClass {}, method {}, redbackAuthorization {}", // operationResourceInfo.getClassResourceInfo().getServiceClass(), // operationResourceInfo.getClassResourceInfo().getResourceClass(), // method, // redbackAuthorization ); return redbackAuthorization; } }
private ResourceProvider getResourceProvider(Exchange exchange) { Object provider = exchange.remove(JAXRSUtils.ROOT_PROVIDER); if (provider == null) { OperationResourceInfo ori = exchange.get(OperationResourceInfo.class); ClassResourceInfo cri = ori.getClassResourceInfo(); return cri.getResourceProvider(); } return (ResourceProvider)provider; }
private ResourceProvider getResourceProvider(Exchange exchange) { Object provider = exchange.remove(JAXRSUtils.ROOT_PROVIDER); if (provider == null) { OperationResourceInfo ori = exchange.get(OperationResourceInfo.class); ClassResourceInfo cri = ori.getClassResourceInfo(); return cri.getResourceProvider(); } else { return (ResourceProvider)provider; } }
Class<?> param = parameterTypes[i]; Type genericParam = InjectionUtils.processGenericTypeIfNeeded( ori.getClassResourceInfo().getServiceClass(), param, genericParameterTypes[i]); param = InjectionUtils.updateParamClassToTypeIfNeeded(param, genericParam);
public static Object getResourceInstance(Message message) { final OperationResourceInfo ori = message.getExchange().get(OperationResourceInfo.class); if (ori == null) { return null; } if (!ori.getClassResourceInfo().isRoot()) { return message.getExchange().get("org.apache.cxf.service.object.last"); } final ResourceProvider resourceProvider = ori.getClassResourceInfo().getResourceProvider(); if (!resourceProvider.isSingleton()) { String error = "Service object is not a singleton, use a custom invoker to validate"; LOG.warning(error); return null; } return resourceProvider.getInstance(message); }
public Object getServiceObject(Exchange exchange) { Object root = exchange.remove(JAXRSUtils.ROOT_INSTANCE); if (root != null) { return root; } OperationResourceInfo ori = exchange.get(OperationResourceInfo.class); ClassResourceInfo cri = ori.getClassResourceInfo(); return cri.getResourceProvider().getInstance(exchange.getInMessage()); }
public Object getServiceObject(Exchange exchange) { Object root = exchange.remove(JAXRSUtils.ROOT_INSTANCE); if (root != null) { return root; } OperationResourceInfo ori = exchange.get(OperationResourceInfo.class); ClassResourceInfo cri = ori.getClassResourceInfo(); return cri.getResourceProvider().getInstance(exchange.getInMessage()); }
public static void pushOntoStack(OperationResourceInfo ori, MultivaluedMap<String, String> params, Message msg) { OperationResourceInfoStack stack = msg.get(OperationResourceInfoStack.class); if (stack == null) { stack = new OperationResourceInfoStack(); msg.put(OperationResourceInfoStack.class, stack); } List<String> values = null; if (params.size() <= 1) { values = Collections.emptyList(); } else { values = new ArrayList<>(params.size() - 1); addTemplateVarValues(values, params, ori.getClassResourceInfo().getURITemplate()); addTemplateVarValues(values, params, ori.getURITemplate()); } Class<?> realClass = ori.getClassResourceInfo().getServiceClass(); stack.push(new MethodInvocationInfo(ori, realClass, values)); }
private void trackEvent(Exchange ex) { final OperationResourceInfo ori = ex.get(OperationResourceInfo.class); if (ori != null) { final EndpointInfo endpointInfo = super.endpoints.get(ori); if (endpointInfo == null) { return; } final String servicePath = endpointInfo.getParent().getMapping() + endpointInfo.getOri().getClassResourceInfo().getURITemplate().getValue() + endpointInfo.getOri().getURITemplate().getValue(); final Request req = TribestreamRequestContextValve.REQUESTS.get(); if (req != null) { req.setAttribute("service_path", servicePath); } } }
private void setExchangeProperties(Message message, OperationResourceInfo ori, MultivaluedMap<String, String> values, int numberOfResources) { message.getExchange().put(OperationResourceInfo.class, ori); message.put(RESOURCE_METHOD, ori.getMethodToInvoke()); message.put(URITemplate.TEMPLATE_PARAMETERS, values); String plainOperationName = ori.getMethodToInvoke().getName(); if (numberOfResources > 1) { plainOperationName = ori.getClassResourceInfo().getServiceClass().getSimpleName() + "#" + plainOperationName; } message.getExchange().put(RESOURCE_OPERATION_NAME, plainOperationName); boolean oneway = ori.isOneway() || MessageUtils.isTrue(HttpUtils.getProtocolHeader(message, Message.ONE_WAY_REQUEST, null)); message.getExchange().setOneWay(oneway); }
public static void runContainerResponseFilters(ServerProviderFactory pf, ResponseImpl r, Message m, OperationResourceInfo ori, Method invoked) throws IOException, Throwable { List<ProviderInfo<ContainerResponseFilter>> containerFilters = pf.getContainerResponseFilters(ori == null ? null : ori.getNameBindings()); if (!containerFilters.isEmpty()) { ContainerRequestContext requestContext = new ContainerRequestContextImpl(m.getExchange().getInMessage(), false, true); ContainerResponseContext responseContext = new ContainerResponseContextImpl(r, m, ori == null ? null : ori.getClassResourceInfo().getServiceClass(), invoked); for (ProviderInfo<ContainerResponseFilter> filter : containerFilters) { InjectionUtils.injectContexts(filter.getProvider(), filter, m); filter.getProvider().filter(requestContext, responseContext); } } }
public static void runContainerResponseFilters(ProviderFactory pf, Response r, Message m, OperationResourceInfo ori, Method invoked) throws IOException, Throwable { List<ProviderInfo<ContainerResponseFilter>> containerFilters = pf.getContainerResponseFilters(ori == null ? null : ori.getNameBindings()); if (!containerFilters.isEmpty()) { ContainerRequestContext requestContext = new ContainerRequestContextImpl(m.getExchange().getInMessage(), false, true); ContainerResponseContext responseContext = new ContainerResponseContextImpl(r, m, ori == null ? null : ori.getClassResourceInfo().getServiceClass(), invoked); for (ProviderInfo<ContainerResponseFilter> filter : containerFilters) { InjectionUtils.injectContexts(filter.getProvider(), filter, m); filter.getProvider().filter(requestContext, responseContext); } } }
private void setExchangeProperties(Message message, Exchange exchange, OperationResourceInfo ori, MultivaluedMap<String, String> values, int numberOfResources) { final ClassResourceInfo cri = ori.getClassResourceInfo(); exchange.put(OperationResourceInfo.class, ori); exchange.put(JAXRSUtils.ROOT_RESOURCE_CLASS, cri); message.put(RESOURCE_METHOD, ori.getMethodToInvoke()); message.put(URITemplate.TEMPLATE_PARAMETERS, values); String plainOperationName = ori.getMethodToInvoke().getName(); if (numberOfResources > 1) { plainOperationName = cri.getServiceClass().getSimpleName() + "#" + plainOperationName; } exchange.put(RESOURCE_OPERATION_NAME, plainOperationName); if (ori.isOneway() || PropertyUtils.isTrue(HttpUtils.getProtocolHeader(message, Message.ONE_WAY_REQUEST, null))) { exchange.setOneWay(true); } ResourceProvider rp = cri.getResourceProvider(); if (rp instanceof SingletonResourceProvider) { //cri.isSingleton is not guaranteed to indicate we have a 'pure' singleton exchange.put(Message.SERVICE_OBJECT, rp.getInstance(message)); } }