From e08ed6df0ce139238ba116914dac7b564b94bcc7 Mon Sep 17 00:00:00 2001 From: Justin Plock Date: Sun, 21 Feb 2016 13:05:02 -0500 Subject: [PATCH 1/2] Ensure the container request is executed first and the container response is executed last --- brave-jaxrs2/pom.xml | 5 +++++ .../brave/jaxrs2/BraveContainerRequestFilter.java | 9 ++++----- .../brave/jaxrs2/BraveContainerResponseFilter.java | 5 ++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/brave-jaxrs2/pom.xml b/brave-jaxrs2/pom.xml index 68a28b6e9f..e0a27d682e 100644 --- a/brave-jaxrs2/pom.xml +++ b/brave-jaxrs2/pom.xml @@ -36,6 +36,11 @@ javax.inject 1 + + javax.annotation + javax.annotation-api + 1.2 + javax.servlet servlet-api diff --git a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerRequestFilter.java b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerRequestFilter.java index f24b6a95cd..f7c5c80392 100644 --- a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerRequestFilter.java +++ b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerRequestFilter.java @@ -6,22 +6,21 @@ import com.github.kristofa.brave.http.SpanNameProvider; import java.io.IOException; -import java.net.URI; -import java.util.logging.Logger; import javax.inject.Inject; +import javax.annotation.Priority; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.UriInfo; +import javax.ws.rs.container.PreMatching; import javax.ws.rs.ext.Provider; -import static java.lang.String.format; - /** * Intercepts incoming container requests and extracts any trace information from the request header * Also sends sr annotations. */ @Provider +@PreMatching +@Priority(0) public class BraveContainerRequestFilter implements ContainerRequestFilter { private final ServerRequestInterceptor requestInterceptor; diff --git a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerResponseFilter.java b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerResponseFilter.java index 60c1d8a890..a5279358c2 100644 --- a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerResponseFilter.java +++ b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveContainerResponseFilter.java @@ -1,11 +1,9 @@ package com.github.kristofa.brave.jaxrs2; -import com.github.kristofa.brave.ServerResponseAdapter; import com.github.kristofa.brave.ServerResponseInterceptor; -import com.github.kristofa.brave.ServerTracer; import com.github.kristofa.brave.http.HttpResponse; import com.github.kristofa.brave.http.HttpServerResponseAdapter; - +import javax.annotation.Priority; import javax.inject.Inject; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; @@ -17,6 +15,7 @@ * Intercepts outgoing container responses and sends ss annotations. */ @Provider +@Priority(0) public class BraveContainerResponseFilter implements ContainerResponseFilter { private final ServerResponseInterceptor responseInterceptor; From 5e38ecee6a0bb7d3b105fae195f443585afdf373 Mon Sep 17 00:00:00 2001 From: Justin Plock Date: Sun, 21 Feb 2016 13:20:25 -0500 Subject: [PATCH 2/2] Add annotations to the client filters as well --- .../github/kristofa/brave/jaxrs2/BraveClientRequestFilter.java | 3 ++- .../kristofa/brave/jaxrs2/BraveClientResponseFilter.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientRequestFilter.java b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientRequestFilter.java index aadea91bb2..02b1fc3dce 100644 --- a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientRequestFilter.java +++ b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientRequestFilter.java @@ -5,7 +5,7 @@ import com.github.kristofa.brave.http.HttpClientRequestAdapter; import com.github.kristofa.brave.http.ServiceNameProvider; import com.github.kristofa.brave.http.SpanNameProvider; - +import javax.annotation.Priority; import javax.inject.Inject; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; @@ -17,6 +17,7 @@ * Also sends cs annotations. */ @Provider +@Priority(0) public class BraveClientRequestFilter implements ClientRequestFilter { private final ServiceNameProvider serviceNameProvider; diff --git a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientResponseFilter.java b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientResponseFilter.java index 856e5384ea..95f32cbdd6 100644 --- a/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientResponseFilter.java +++ b/brave-jaxrs2/src/main/java/com/github/kristofa/brave/jaxrs2/BraveClientResponseFilter.java @@ -5,7 +5,7 @@ import com.github.kristofa.brave.http.HttpResponse; import com.github.kristofa.brave.http.ServiceNameProvider; import com.github.kristofa.brave.http.SpanNameProvider; - +import javax.annotation.Priority; import javax.inject.Inject; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientResponseContext; @@ -17,6 +17,7 @@ * Intercepts JAX-RS 2 client responses and sends cr annotations. Also submits the completed span. */ @Provider +@Priority(0) public class BraveClientResponseFilter implements ClientResponseFilter { private final ServiceNameProvider serviceNameProvider;