@Override public Request filterRequest(Request request) { checkNotNull(request, "request is null"); String token = traceTokenManager.getCurrentRequestToken(); if (token == null) { return request; } return fromRequest(request) .addHeader(TRACETOKEN_HEADER, token) .build(); }
String token = getCurrentRequestToken();
@Override public <T> CheckedFuture<Void, RuntimeException> post(EventGenerator<T> eventGenerator) { checkNotNull(eventGenerator, "eventGenerator is null"); String token = traceTokenManager.getCurrentRequestToken(); List<URI> uris = serviceSelector.selectHttpService(); if (uris.isEmpty()) { return Futures.<Void, RuntimeException>immediateFailedCheckedFuture(new ServiceUnavailableException(serviceSelector.getType(), serviceSelector.getPool())); } // todo this doesn't really work due to returning the future which can fail without being retried Request request = preparePost() .setUri(uris.get(0).resolve("/v2/event")) .setHeader("User-Agent", nodeInfo.getNodeId()) .setHeader("Content-Type", MEDIA_TYPE_JSON.toString()) .setBodyGenerator(new JsonEntityWriter<>(eventWriter, eventGenerator, token)) .build(); return httpClient.executeAsync(request, new EventResponseHandler(serviceSelector.getType(), serviceSelector.getPool())); }