Skip to content

Commit 127d9b5

Browse files
authored
Merge pull request #2598 from gmarcy/2566-mpOpenTracing-fixes
fix annotation issue in opentracing
2 parents 90c45d3 + 14cc885 commit 127d9b5

File tree

22 files changed

+343
-23
lines changed

22 files changed

+343
-23
lines changed

dev/com.ibm.ws.microprofile.opentracing/bnd.bnd

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ Bundle-Description: MicroProfile.OpenTracing 1.0, version ${bVersion}
2020

2121
WS-TraceGroup: OPENTRACING
2222

23-
-dsannotations: com.ibm.ws.microprofile.opentracing.OpenTracingFilterHelper
23+
-dsannotations: \
24+
com.ibm.ws.microprofile.opentracing.OpenTracingFilterHelper, \
25+
com.ibm.ws.microprofile.opentracing.cdi.OpenTracingCDIInjectionExtension
2426

2527
Import-Package: *
2628

@@ -30,6 +32,9 @@ Export-Package: \
3032

3133
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
3234

35+
Include-Resource: \
36+
META-INF=resources/META-INF
37+
3338
-buildpath: \
3439
io.opentracing:opentracing-api;version=0.30.0, \
3540
com.ibm.ws.opentracing;version=latest, \
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!--
2+
Copyright (c) 2017 IBM Corporation and others.
3+
All rights reserved. This program and the accompanying materials
4+
are made available under the terms of the Eclipse Public License v1.0
5+
which accompanies this distribution, and is available at
6+
http://www.eclipse.org/legal/epl-v10.html
7+
8+
Contributors:
9+
IBM Corporation - initial API and implementation
10+
-->
11+
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
12+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
13+
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
14+
version="1.1"
15+
bean-discovery-mode="all">
16+
</beans>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
com.ibm.ws.microprofile.opentracing.cdi.OpenTracingCDIInjectionExtension

dev/com.ibm.ws.microprofile.opentracing/src/com/ibm/ws/microprofile/opentracing/OpenTracingFilterHelper.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import javax.ws.rs.client.ClientResponseFilter;
1616
import javax.ws.rs.container.ContainerRequestContext;
1717
import javax.ws.rs.container.ResourceInfo;
18-
import javax.ws.rs.core.Context;
1918

2019
import org.osgi.service.component.annotations.Component;
2120

@@ -36,9 +35,6 @@
3635
public class OpenTracingFilterHelper implements OpentracingFilterHelper {
3736
private static final TraceComponent tc = Tr.register(OpenTracingFilterHelper.class);
3837

39-
@Context
40-
protected ResourceInfo resourceInfo;
41-
4238
//
4339
@Override
4440
public String getBuildSpanName(ClientRequestContext clientRequestContext) {
@@ -50,8 +46,8 @@ public String getBuildSpanName(ClientRequestContext clientRequestContext) {
5046

5147
//
5248
@Override
53-
public String getBuildSpanName(ContainerRequestContext incomingRequestContext) {
54-
String methodName = "filter(incoming)";
49+
public String getBuildSpanName(ContainerRequestContext incomingRequestContext, ResourceInfo resourceInfo) {
50+
String methodName = "getBuildSpanName";
5551

5652
String methodOperationName = OpenTracingService.getMethodOperationName(resourceInfo.getResourceMethod());
5753
String classOperationName = OpenTracingService.getClassOperationName(resourceInfo.getResourceMethod());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2017 IBM Corporation and others.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* IBM Corporation - initial API and implementation
10+
*******************************************************************************/
11+
package com.ibm.ws.microprofile.opentracing.cdi;
12+
13+
import javax.enterprise.inject.spi.Extension;
14+
15+
import org.osgi.service.component.annotations.Component;
16+
import org.osgi.service.component.annotations.ConfigurationPolicy;
17+
18+
import com.ibm.ws.cdi.extension.WebSphereCDIExtension;
19+
20+
@Component(service = WebSphereCDIExtension.class, configurationPolicy = ConfigurationPolicy.IGNORE, immediate = true)
21+
public class OpenTracingCDIInjectionExtension implements WebSphereCDIExtension, Extension {}

dev/com.ibm.ws.opentracing/src/com/ibm/ws/opentracing/OpentracingClientFilter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,13 @@ public class OpentracingClientFilter implements ClientRequestFilter, ClientRespo
5353

5454
public static final String CLIENT_SPAN_SKIPPED_ID = OpentracingClientFilter.class.getName() + ".Skipped";
5555

56-
private final OpentracingFilterHelper helper;
56+
private OpentracingFilterHelper helper;
5757

5858
OpentracingClientFilter(OpentracingFilterHelper helper) {
59+
setFilterHelper(helper);
60+
}
61+
62+
void setFilterHelper(OpentracingFilterHelper helper) {
5963
this.helper = helper;
6064
}
6165

dev/com.ibm.ws.opentracing/src/com/ibm/ws/opentracing/OpentracingContainerFilter.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import javax.ws.rs.container.ContainerRequestFilter;
2323
import javax.ws.rs.container.ContainerResponseContext;
2424
import javax.ws.rs.container.ContainerResponseFilter;
25+
import javax.ws.rs.container.ResourceInfo;
26+
import javax.ws.rs.core.Context;
2527
import javax.ws.rs.core.MultivaluedMap;
2628
import javax.ws.rs.core.Response;
2729
import javax.ws.rs.ext.ExceptionMapper;
@@ -51,9 +53,16 @@ public class OpentracingContainerFilter implements ContainerRequestFilter, Conta
5153

5254
public static final String EXCEPTION_KEY = OpentracingContainerFilter.class.getName() + ".Exception";
5355

54-
private final OpentracingFilterHelper helper;
56+
@Context
57+
protected ResourceInfo resourceInfo;
58+
59+
private OpentracingFilterHelper helper;
5560

5661
OpentracingContainerFilter(OpentracingFilterHelper helper) {
62+
setFilterHelper(helper);
63+
}
64+
65+
void setFilterHelper(OpentracingFilterHelper helper) {
5766
this.helper = helper;
5867
}
5968

@@ -94,7 +103,7 @@ public void filter(ContainerRequestContext incomingRequestContext) throws IOExce
94103

95104
String buildSpanName;
96105
if (helper != null) {
97-
buildSpanName = helper.getBuildSpanName(incomingRequestContext);
106+
buildSpanName = helper.getBuildSpanName(incomingRequestContext, resourceInfo);
98107
if (buildSpanName == null) {
99108
if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
100109
Tr.debug(tc, methodName + " skipping not traced method");

dev/com.ibm.ws.opentracing/src/com/ibm/ws/opentracing/OpentracingFilterHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import javax.ws.rs.client.ClientRequestContext;
1414
import javax.ws.rs.container.ContainerRequestContext;
15+
import javax.ws.rs.container.ResourceInfo;
1516

1617
/**
1718
* Service interface to provide operation names for building spans in filters
@@ -20,5 +21,5 @@ public interface OpentracingFilterHelper {
2021

2122
String getBuildSpanName(ClientRequestContext clientRequestContext);
2223

23-
String getBuildSpanName(ContainerRequestContext incomingRequestContext);
24+
String getBuildSpanName(ContainerRequestContext incomingRequestContext, ResourceInfo resourceInfo);
2425
}

dev/com.ibm.ws.opentracing/src/com/ibm/ws/opentracing/OpentracingJaxRsProviderRegister.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,22 @@ protected void deactivate(ComponentContext context) {
5656
@Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC, policyOption = ReferencePolicyOption.GREEDY)
5757
protected void setOpentracingFilterHelper(OpentracingFilterHelper helper) {
5858
this.helper = helper;
59+
if (containerFilter != null) {
60+
containerFilter.setFilterHelper(helper);
61+
}
62+
if (clientFilter != null) {
63+
clientFilter.setFilterHelper(helper);
64+
}
5965
}
6066

6167
protected void unsetOpentracingFilterHelper(OpentracingFilterHelper helper) {
6268
this.helper = null;
69+
if (containerFilter != null) {
70+
containerFilter.setFilterHelper(null);
71+
}
72+
if (clientFilter != null) {
73+
clientFilter.setFilterHelper(null);
74+
}
6375
}
6476

6577
@Trivial

dev/com.ibm.ws.opentracing_fat/.classpath

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<classpath>
33
<classpathentry kind="src" path="fat/src"/>
4+
<classpathentry kind="src" path="test-applications/mpOpenTracing/src"/>
45
<classpathentry kind="src" path="test-applications/serviceApp/src"/>
56
<classpathentry kind="src" path="test-bundles/opentracing.mock/src"/>
67
<classpathentry kind="src" path="test-applications/jaxrsHelloWorld/src"/>

0 commit comments

Comments
 (0)