@Override public PathSegment apply(ContainerRequest request) { List<PathSegment> ps = request.getUriInfo().getPathSegments(name, decode); if (ps.isEmpty()) { return null; } return ps.get(ps.size() - 1); } }
@Override public List<PathSegment> apply(ContainerRequest request) { return request.getUriInfo().getPathSegments(name, decode); } }
@Override public PathSegment apply(ContainerRequest request) { List<PathSegment> ps = request.getUriInfo().getPathSegments(name, decode); if (ps.isEmpty()) { return null; } return ps.get(ps.size() - 1); } }
@Override public List<PathSegment> apply(ContainerRequest request) { return request.getUriInfo().getPathSegments(name, decode); } }
@Override public String url(ContainerRequest request) { return request.getUriInfo().getRequestUri().toString(); }
private static void printRequestLine(StringBuilder buffer, ContainerRequest request) { buffer.append(request.getMethod()).append(" ").append(request.getUriInfo().getRequestUri().toASCIIString()).append("\n"); }
/** * Returns a JavaScript callback name to wrap the JSON entity into. The callback name is determined from the {@link JSONP} * annotation. * * @param jsonp {@link JSONP} annotation to determine the callback name from. * @return a JavaScript callback name. */ private String getCallbackName(final JSONP jsonp) { String callback = jsonp.callback(); if (!"".equals(jsonp.queryParam())) { final ContainerRequest containerRequest = containerRequestProvider.get(); final UriInfo uriInfo = containerRequest.getUriInfo(); final MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters(); final List<String> queryParameter = queryParameters.get(jsonp.queryParam()); callback = (queryParameter != null && !queryParameter.isEmpty()) ? queryParameter.get(0) : callback; } return callback; }
/** * Returns a JavaScript callback name to wrap the JSON entity into. The callback name is determined from the {@link JSONP} * annotation. * * @param jsonp {@link JSONP} annotation to determine the callback name from. * @return a JavaScript callback name. */ private String getCallbackName(final JSONP jsonp) { String callback = jsonp.callback(); if (!"".equals(jsonp.queryParam())) { final ContainerRequest containerRequest = containerRequestProvider.get(); final UriInfo uriInfo = containerRequest.getUriInfo(); final MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters(); final List<String> queryParameter = queryParameters.get(jsonp.queryParam()); callback = (queryParameter != null && !queryParameter.isEmpty()) ? queryParameter.get(0) : callback; } return callback; }
ExtendedUriInfo uriInfo = request.getUriInfo(); List<UriTemplate> templates = uriInfo.getMatchedTemplates(); int templateCount = templates.size();
@Override public WebTarget apply(ContainerRequest containerRequest) { // no need for try-catch - unlike for @*Param annotations, any issues with @Uri would usually be caused // by incorrect server code, so the default runtime exception mapping to 500 is appropriate final ExtendedUriInfo uriInfo = containerRequest.getUriInfo(); final Map<String, Object> pathParamValues = uriInfo.getPathParameters().entrySet() .stream() .collect(Collectors.toMap( Map.Entry::getKey, (Function<Map.Entry<String, List<String>>, Object>) stringObjectEntry -> { List<String> input = stringObjectEntry.getValue(); return input.isEmpty() ? null : input.get(0); })); JerseyUriBuilder uriBuilder = new JerseyUriBuilder().uri(this.uri).resolveTemplates(pathParamValues); final ManagedClient managedClient = client.get(); if (!uriBuilder.isAbsolute()) { final String customBaseUri = managedClient.customBaseUri; final String rootUri = customBaseUri.isEmpty() ? uriInfo.getBaseUri().toString() : customBaseUri; uriBuilder = new JerseyUriBuilder().uri(rootUri).path(uriBuilder.toTemplate()); } return managedClient.instance.target(uriBuilder); } }
@Override public WebTarget apply(ContainerRequest containerRequest) { // no need for try-catch - unlike for @*Param annotations, any issues with @Uri would usually be caused // by incorrect server code, so the default runtime exception mapping to 500 is appropriate final ExtendedUriInfo uriInfo = containerRequest.getUriInfo(); final Map<String, Object> pathParamValues = uriInfo.getPathParameters().entrySet() .stream() .collect(Collectors.toMap( Map.Entry::getKey, (Function<Map.Entry<String, List<String>>, Object>) stringObjectEntry -> { List<String> input = stringObjectEntry.getValue(); return input.isEmpty() ? null : input.get(0); })); JerseyUriBuilder uriBuilder = new JerseyUriBuilder().uri(this.uri).resolveTemplates(pathParamValues); final ManagedClient managedClient = client.get(); if (!uriBuilder.isAbsolute()) { final String customBaseUri = managedClient.customBaseUri; final String rootUri = customBaseUri.isEmpty() ? uriInfo.getBaseUri().toString() : customBaseUri; uriBuilder = new JerseyUriBuilder().uri(rootUri).path(uriBuilder.toTemplate()); } return managedClient.instance.target(uriBuilder); } }
@Override public Object apply(ContainerRequest containerRequest) { List<PathSegment> l = containerRequest.getUriInfo().getPathSegments(decode); PathSegment p = l.get(l.size() - 1); try { return extractor.extract(p.getMatrixParameters()); } catch (ExtractorException e) { throw new ParamException.MatrixParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
@Override public Object apply(ContainerRequest containerRequest) { List<PathSegment> l = containerRequest.getUriInfo().getPathSegments(decode); PathSegment p = l.get(l.size() - 1); try { return extractor.extract(p.getMatrixParameters()); } catch (ExtractorException e) { throw new ParamException.MatrixParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
/** * Invoked prior to request invocation during {@link RequestEventListener#onEvent(RequestEvent)} * where the event type is {@link RequestEvent.Type#REQUEST_MATCHED} * * <p>Adds the tags {@link #RESOURCE_CLASS} and {@link #RESOURCE_METHOD}. Override or use {@link #NOOP} * to change this behavior. */ protected void requestMatched(RequestEvent event, SpanCustomizer customizer) { Invocable i = event.getContainerRequest().getUriInfo().getMatchedResourceMethod().getInvocable(); customizer.tag(RESOURCE_CLASS, i.getHandler().getHandlerClass().getSimpleName()); customizer.tag(RESOURCE_METHOD, i.getHandlingMethod().getName()); }
@Override public Object apply(ContainerRequest containerRequest) { try { return extractor.extract(containerRequest.getUriInfo().getQueryParameters(decode)); } catch (ExtractorException e) { throw new ParamException.QueryParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
@Override public Object apply(ContainerRequest containerRequest) { try { return extractor.extract(containerRequest.getUriInfo().getQueryParameters(decode)); } catch (ExtractorException e) { throw new ParamException.QueryParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
@Override public Object apply(ContainerRequest request) { try { return extractor.extract(request.getUriInfo().getPathParameters(decode)); } catch (ExtractorException e) { throw new PathParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
@Override public Object apply(ContainerRequest request) { try { return extractor.extract(request.getUriInfo().getPathParameters(decode)); } catch (ExtractorException e) { throw new PathParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }
@Override public PathSegment apply(ContainerRequest request) { List<PathSegment> ps = request.getUriInfo().getPathSegments(name, decode); if (ps.isEmpty()) { return null; } return ps.get(ps.size() - 1); } }
@Override public Object apply(ContainerRequest containerRequest) { try { return extractor.extract(containerRequest.getUriInfo().getQueryParameters(decode)); } catch (ExtractorException e) { throw new ParamException.QueryParamException(e.getCause(), extractor.getName(), extractor.getDefaultValueString()); } } }