killbill-uncached

Merge pull request #419 from andrenpaes/standard-request-id Add

10/22/2015 10:41:21 PM

Details

diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/filters/RequestDataFilter.java b/profiles/killbill/src/main/java/org/killbill/billing/server/filters/RequestDataFilter.java
index a32a507..02fa786 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/filters/RequestDataFilter.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/filters/RequestDataFilter.java
@@ -19,6 +19,8 @@ package org.killbill.billing.server.filters;
 
 import java.util.List;
 
+import javax.ws.rs.core.HttpHeaders;
+
 import org.killbill.billing.util.UUIDs;
 import org.killbill.commons.request.Request;
 import org.killbill.commons.request.RequestData;
@@ -32,12 +34,13 @@ import com.sun.jersey.spi.container.ContainerResponseFilter;
 @Singleton
 public class RequestDataFilter implements ContainerRequestFilter, ContainerResponseFilter {
 
+    private static final String REQUEST_ID_HEADER = "X-Request-Id";
 
-    private static final String REQUEST_ID_HEADER_REQ = "X-Killbill-Request-Id-Req";
+    private static final String LEGACY_REQUEST_ID_HEADER = "X-Killbill-Request-Id-Req";
 
     @Override
     public ContainerRequest filter(final ContainerRequest request) {
-        final List<String> requestIdHeaderRequests = request.getRequestHeader(REQUEST_ID_HEADER_REQ);
+        final List<String> requestIdHeaderRequests = getRequestId(request);
         final String requestId = (requestIdHeaderRequests == null || requestIdHeaderRequests.isEmpty()) ? UUIDs.randomUUID().toString() : requestIdHeaderRequests.get(0);
         Request.setPerThreadRequestData(new RequestData(requestId));
         return request;
@@ -48,4 +51,12 @@ public class RequestDataFilter implements ContainerRequestFilter, ContainerRespo
         Request.resetPerThreadRequestData();
         return response;
     }
+
+    private List<String> getRequestId(final HttpHeaders requestHeaders) {
+        List<String> requestIds = requestHeaders.getRequestHeader(REQUEST_ID_HEADER);
+        if (requestIds == null || requestIds.isEmpty()) {
+            requestIds = requestHeaders.getRequestHeader(LEGACY_REQUEST_ID_HEADER);
+        }
+        return requestIds;
+    }
 }