@Override public void filter(ClientRequestContext requestContext) throws IOException { Tracer.SpanBuilder spanBuilder = GlobalTracer.get() .buildSpan(LocalizationMessages.OPENTRACING_SPAN_PREFIX_CLIENT() + requestContext.getMethod()) .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT) .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT) .withTag(Tags.HTTP_URL.getKey(), requestContext.getUri().toASCIIString()) .withTag(Tags.HTTP_METHOD.getKey(), requestContext.getMethod()) .withTag(LocalizationMessages.OPENTRACING_TAG_HAS_REQUEST_ENTITY(), requestContext.hasEntity()) .withTag(LocalizationMessages.OPENTRACING_TAG_ACCEPTABLE_MEDIA_TYPES(), requestContext.getAcceptableMediaTypes() .stream() .map(MediaType::toString) .collect(Collectors.joining(", "))) .withTag(LocalizationMessages.OPENTRACING_TAG_REQUEST_HEADERS(), OpenTracingUtils.headersAsString(requestContext.getHeaders())); // if pre-stored "span" property is found, propagate the stored context final Object property = requestContext.getProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY); if (property != null && property instanceof SpanContext) { spanBuilder = spanBuilder.asChildOf((SpanContext) property); } Span span = spanBuilder.startManual(); requestContext.setProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, span); Map<String, String> addedHeaders = new HashMap<>(); GlobalTracer.get().inject(span.context(), Format.Builtin.HTTP_HEADERS, new TextMapInjectAdapter(addedHeaders)); addedHeaders.forEach((key, value) -> requestContext.getHeaders().add(key, value)); } }
protected BrowserCache.Entry getEntry(ClientRequestContext request) throws Exception { String uri = request.getUri().toString(); List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes(); BrowserCache.Entry entry = null; if (acceptableMediaTypes.size() > 0) { for (MediaType accept : acceptableMediaTypes) { entry = cache.get(uri, accept); if (entry != null) return entry; if (MediaTypeHelper.isTextLike(accept)) { entry = cache.get(uri, accept.withCharset("UTF-8")); if (entry != null) return entry; } } } else { return cache.getAny(uri); } return null; }
protected BrowserCache.Entry getEntry(ClientRequestContext request) throws Exception { String uri = request.getUri().toString(); List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes(); BrowserCache.Entry entry = null; if (acceptableMediaTypes.size() > 0) { for (MediaType accept : acceptableMediaTypes) { entry = cache.get(uri, accept); if (entry != null) return entry; if (MediaTypeHelper.isTextLike(accept)) { entry = cache.get(uri, accept.withCharset("UTF-8")); if (entry != null) return entry; } } } else { return cache.getAny(uri); } return null; }
protected BrowserCache.Entry getEntry(ClientRequestContext request) throws Exception { String uri = request.getUri().toString(); List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes(); BrowserCache.Entry entry = null; if (acceptableMediaTypes.size() > 0) { for (MediaType accept : acceptableMediaTypes) { entry = cache.get(uri, accept); if (entry != null) return entry; if (MediaTypeHelper.isTextLike(accept)) { entry = cache.get(uri, accept.withCharset("UTF-8")); if (entry != null) return entry; } } } else { return cache.getAny(uri); } return null; }
@Override public void filter(ClientRequestContext rc) throws IOException { String method = rc.getMethod(); String expectedMethod = null; if (rc.getAcceptableMediaTypes().contains(MediaType.valueOf("text/mistypedxml")) && rc.getHeaders().getFirst("THEMETHOD") != null) { expectedMethod = MediaType.TEXT_XML_TYPE.equals(rc.getMediaType()) ? "DELETE" : "GET"; rc.setUri(URI.create("http://localhost:" + PORT + "/bookstore/books2")); rc.setMethod(rc.getHeaders().getFirst("THEMETHOD").toString()); if ("GET".equals(expectedMethod)) { rc.getHeaders().putSingle("Content-Type", "text/xml"); } } else { expectedMethod = "POST"; } if (!expectedMethod.equals(method)) { throw new RuntimeException(); } if ("GET".equals(expectedMethod)) { rc.setEntity(new Book("book", 560L)); } else { rc.setEntity(new Book("book", ((Book)rc.getEntity()).getId() + 5)); } }