This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git
The following commit(s) were added to refs/heads/master by this push:
new 8dc287517e Basic support and configuration for MicroProfile OpenTracing
8dc287517e is described below
commit 8dc287517e7ad624678a971c422fc8ba8b8c61db
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Mon Apr 11 09:46:43 2022 +0200
Basic support and configuration for MicroProfile OpenTracing
---
boms/tomee-microprofile-api/pom.xml | 11 -----
boms/tomee-microprofile/pom.xml | 11 -----
boms/tomee-plume-api/pom.xml | 11 -----
boms/tomee-plume/pom.xml | 11 -----
boms/tomee-plus-api/pom.xml | 11 -----
boms/tomee-plus/pom.xml | 11 -----
deps/cxf-rt-rs-mp-client-shade/pom.xml | 12 ++---
tck/microprofile-tck/opentracing/pom.xml | 55 ++++++++++++++++++++--
...a => MicroProfileOpenTracingClientBuilder.java} | 27 +++++++----
...eOpenTracingClientTracingRegistrarProvider.java | 40 ++++++++++++++++
...=> MicroProfileOpenTracingExceptionMapper.java} | 19 ++++----
...ProfileOpenTracingFinishingFilterInstaller.java | 45 ++++++++++++++++++
...croProfileOpenTracingTCKDeploymentPackager.java | 9 ++++
.../MicroProfileOpenTracingTracingFeature.java | 48 +++++++++++++++++++
.../MicroProfileOpenTrackingContextResolver.java | 16 ++++---
...Test.java => OpenTracingJohnzonMapperTest.java} | 11 ++---
.../services/jakarta.ws.rs.client.ClientBuilder | 1 +
.../opentracing/src/test/resources/arquillian.xml | 1 +
tck/microprofile-tck/opentracing/tck-suite.xml | 12 +++++
.../microprofile/TomEEMicroProfileListener.java | 3 +-
20 files changed, 253 insertions(+), 112 deletions(-)
diff --git a/boms/tomee-microprofile-api/pom.xml
b/boms/tomee-microprofile-api/pom.xml
index 1ecb375f32..f3e1ea1c6a 100644
--- a/boms/tomee-microprofile-api/pom.xml
+++ b/boms/tomee-microprofile-api/pom.xml
@@ -227,17 +227,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>openejb-api</artifactId>
diff --git a/boms/tomee-microprofile/pom.xml b/boms/tomee-microprofile/pom.xml
index 4e39c55b12..549ab1e89a 100644
--- a/boms/tomee-microprofile/pom.xml
+++ b/boms/tomee-microprofile/pom.xml
@@ -1107,17 +1107,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>mp-common</artifactId>
diff --git a/boms/tomee-plume-api/pom.xml b/boms/tomee-plume-api/pom.xml
index 8dcb40f5b5..33a9895caf 100644
--- a/boms/tomee-plume-api/pom.xml
+++ b/boms/tomee-plume-api/pom.xml
@@ -205,17 +205,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>openejb-api</artifactId>
diff --git a/boms/tomee-plume/pom.xml b/boms/tomee-plume/pom.xml
index c8106864f7..54cb765718 100644
--- a/boms/tomee-plume/pom.xml
+++ b/boms/tomee-plume/pom.xml
@@ -1207,17 +1207,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>mp-common</artifactId>
diff --git a/boms/tomee-plus-api/pom.xml b/boms/tomee-plus-api/pom.xml
index 4408aebda9..09479727eb 100644
--- a/boms/tomee-plus-api/pom.xml
+++ b/boms/tomee-plus-api/pom.xml
@@ -194,17 +194,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>openejb-api</artifactId>
diff --git a/boms/tomee-plus/pom.xml b/boms/tomee-plus/pom.xml
index 59e5291f55..b6483e78cc 100644
--- a/boms/tomee-plus/pom.xml
+++ b/boms/tomee-plus/pom.xml
@@ -1207,17 +1207,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>9.0.0-M8-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <artifactId>*</artifactId>
- <groupId>*</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<dependency>
<groupId>org.apache.tomee</groupId>
<artifactId>mp-common</artifactId>
diff --git a/deps/cxf-rt-rs-mp-client-shade/pom.xml
b/deps/cxf-rt-rs-mp-client-shade/pom.xml
index 870bdf3971..b269af4e2b 100644
--- a/deps/cxf-rt-rs-mp-client-shade/pom.xml
+++ b/deps/cxf-rt-rs-mp-client-shade/pom.xml
@@ -63,15 +63,9 @@
</dependency>
<dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>microprofile-rest-client-api-shade</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.eclipse.microprofile.rest.client</groupId>
- <artifactId>microprofile-rest-client-api</artifactId>
- </exclusion>
- </exclusions>
+ <groupId>org.eclipse.microprofile.rest.client</groupId>
+ <artifactId>microprofile-rest-client-api</artifactId>
+ <version>${microprofile.rest-client.version}</version>
</dependency>
</dependencies>
diff --git a/tck/microprofile-tck/opentracing/pom.xml
b/tck/microprofile-tck/opentracing/pom.xml
index 8ba2b6a27f..eb8dfda89d 100644
--- a/tck/microprofile-tck/opentracing/pom.xml
+++ b/tck/microprofile-tck/opentracing/pom.xml
@@ -32,7 +32,6 @@
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
- <!-- Updated version to fix hanging text -->
<version>3.0.0-M6</version>
<configuration>
<dependenciesToScan>
@@ -82,6 +81,12 @@
</profiles>
<dependencies>
+ <dependency>
+ <groupId>org.eclipse.microprofile.config</groupId>
+ <artifactId>microprofile-config-api</artifactId>
+ <version>${microprofile.config.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.eclipse.microprofile.opentracing</groupId>
<artifactId>microprofile-opentracing-api</artifactId>
@@ -95,6 +100,46 @@
<version>${microprofile.opentracing.tck.version}</version>
<scope>test</scope>
</dependency>
+ <!--
+ <dependency>
+ <groupId>org.eclipse.microprofile.opentracing</groupId>
+ <artifactId>microprofile-opentracing-tck-rest-client</artifactId>
+ <version>${microprofile.opentracing.tck.version}</version>
+ <scope>test</scope>
+ </dependency>
+ -->
+
+ <dependency>
+ <groupId>org.apache.tomee</groupId>
+ <artifactId>jakartaee-api</artifactId>
+ <version>${version.jakartaee-api}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomee</groupId>
+ <artifactId>cxf-rt-rs-mp-client-shade</artifactId>
+ <version>9.0.0-M8-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.johnzon</groupId>
+ <artifactId>johnzon-core</artifactId>
+ <classifier>jakarta</classifier>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.johnzon</groupId>
+ <artifactId>johnzon-mapper</artifactId>
+ <classifier>jakarta</classifier>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.johnzon</groupId>
+ <artifactId>johnzon-jaxrs</artifactId>
+ <classifier>jakarta</classifier>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
@@ -133,11 +178,13 @@
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.jaxrs</groupId>
- <artifactId>jackson-jaxrs-json-provider</artifactId>
- <version>2.13.0</version>
+ <groupId>io.smallrye</groupId>
+ <artifactId>smallrye-opentracing</artifactId>
+ <version>${microprofile.opentracing.impl.version}</version>
<scope>provided</scope>
</dependency>
+
+
</dependencies>
</project>
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientBuilder.java
similarity index 52%
copy from
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
copy to
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientBuilder.java
index 6d0bd391b2..179cc1fa4f 100644
---
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientBuilder.java
@@ -16,16 +16,25 @@
*/
package org.apache.tomee.microprofile.tck.opentracing;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import jakarta.ws.rs.ext.ContextResolver;
+import org.apache.cxf.jaxrs.client.spec.ClientBuilderImpl;
+import org.apache.johnzon.jaxrs.JohnzonProvider;
+import org.apache.johnzon.mapper.Mapper;
+import org.apache.johnzon.mapper.MapperBuilder;
+import org.eclipse.microprofile.opentracing.tck.tracer.TestSpanTree;
-import static
com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import java.util.Collections;
-public class MicroProfileOpenTrackingContextResolver implements
ContextResolver<ObjectMapper>{
- @Override
- public ObjectMapper getContext(final Class<?> type) {
- final ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
- return objectMapper;
+/**
+ * CXF does not scan for @Provider in ClientBuilder, so when we receive the
server payload, we can't deserialize it
+ * with Johnzon
+ */
+public class MicroProfileOpenTracingClientBuilder extends ClientBuilderImpl {
+
+ public MicroProfileOpenTracingClientBuilder() {
+ super();
+ final Mapper mapper = new MapperBuilder()
+ .setFailOnUnknownProperties(false)
+ .build();
+ register(new JohnzonProvider<TestSpanTree>(mapper,
Collections.emptyList()));
}
}
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientTracingRegistrarProvider.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientTracingRegistrarProvider.java
new file mode 100644
index 0000000000..26a35fa28f
--- /dev/null
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingClientTracingRegistrarProvider.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomee.microprofile.tck.opentracing;
+
+import io.opentracing.Tracer;
+import io.opentracing.contrib.concurrent.TracedExecutorService;
+import io.smallrye.opentracing.SmallRyeClientTracingFeature;
+import jakarta.enterprise.inject.spi.CDI;
+import jakarta.ws.rs.client.ClientBuilder;
+import org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+public class MicroProfileOpenTracingClientTracingRegistrarProvider implements
ClientTracingRegistrarProvider {
+
+ public ClientBuilder configure(ClientBuilder clientBuilder) {
+ return configure(clientBuilder, Executors.newFixedThreadPool(10));
+ }
+
+ public ClientBuilder configure(ClientBuilder clientBuilder,
ExecutorService executorService) {
+ final Tracer tracer = CDI.current().select(Tracer.class).get();
+ return clientBuilder.executorService(new
TracedExecutorService(executorService, tracer))
+ .register(new
MicroProfileOpenTracingTracingFeature(tracer));
+ }
+}
\ No newline at end of file
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java
similarity index 63%
copy from
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
copy to
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java
index 6d0bd391b2..56ae9b18fc 100644
---
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java
@@ -16,16 +16,17 @@
*/
package org.apache.tomee.microprofile.tck.opentracing;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import jakarta.ws.rs.ext.ContextResolver;
+import jakarta.ws.rs.ext.Provider;
+import jakarta.ws.rs.core.Response;
-import static
com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+@Provider
+public class MicroProfileOpenTracingExceptionMapper implements
jakarta.ws.rs.ext.ExceptionMapper<RuntimeException> {
-public class MicroProfileOpenTrackingContextResolver implements
ContextResolver<ObjectMapper>{
@Override
- public ObjectMapper getContext(final Class<?> type) {
- final ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
- return objectMapper;
+ public Response toResponse(final RuntimeException exception) {
+ return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
+ .entity(exception.getMessage())
+ .build();
}
-}
+
+}
\ No newline at end of file
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
new file mode 100644
index 0000000000..bc7893c86c
--- /dev/null
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomee.microprofile.tck.opentracing;
+
+import io.smallrye.opentracing.contrib.jaxrs2.server.SpanFinishingFilter;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.FilterRegistration;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.annotation.WebListener;
+
+import java.util.EnumSet;
+
+@WebListener
+public class MicroProfileOpenTracingFinishingFilterInstaller implements
ServletContextListener {
+
+ @Override
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+ final ServletContext servletContext =
servletContextEvent.getServletContext();
+
+ // Span finishing filter
+ final FilterRegistration.Dynamic filterRegistration =
servletContext.addFilter("tracingFilter", new SpanFinishingFilter());
+ filterRegistration.setAsyncSupported(true);
+
filterRegistration.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class),
true, "*");
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent servletContextEvent) {
+ }
+}
\ No newline at end of file
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTCKDeploymentPackager.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTCKDeploymentPackager.java
index 88481b3480..a4b251b175 100644
---
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTCKDeploymentPackager.java
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTCKDeploymentPackager.java
@@ -18,6 +18,8 @@ package org.apache.tomee.microprofile.tck.opentracing;
import io.opentracing.mock.MockTracer;
import io.opentracing.util.ThreadLocalScopeManager;
+import jakarta.ws.rs.ext.Providers;
+import org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider;
import org.jboss.arquillian.container.test.spi.TestDeployment;
import
org.jboss.arquillian.container.test.spi.client.deployment.ProtocolArchiveProcessor;
import
org.jboss.arquillian.protocol.servlet5.v_5.ServletProtocolDeploymentPackager;
@@ -49,6 +51,13 @@ public class MicroProfileOpenTracingTCKDeploymentPackager
extends ServletProtoco
webArchive.addAsLibrary(jarLocation(ThreadLocalScopeManager.class));
webArchive.addAsWebInfResource("META-INF/beans.xml");
webArchive.addClass(MicroProfileOpenTracingTCKTracer.class);
+ webArchive.addClass(MicroProfileOpenTracingExceptionMapper.class);
+
webArchive.addClass(MicroProfileOpenTracingFinishingFilterInstaller.class);
+
webArchive.addClass(MicroProfileOpenTracingClientTracingRegistrarProvider.class);
+ webArchive.addClass(MicroProfileOpenTracingTracingFeature.class);
+ webArchive.addClass(MicroProfileOpenTrackingContextResolver.class);
+ webArchive.addAsServiceProvider(Providers.class,
MicroProfileOpenTrackingContextResolver.class);
+ webArchive.addAsServiceProvider(ClientTracingRegistrarProvider.class,
MicroProfileOpenTracingClientTracingRegistrarProvider.class);
System.out.println(webArchive.toString(true));
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTracingFeature.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTracingFeature.java
new file mode 100644
index 0000000000..c696b6c0cb
--- /dev/null
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingTracingFeature.java
@@ -0,0 +1,48 @@
+package org.apache.tomee.microprofile.tck.opentracing;
+
+import io.opentracing.Span;
+import io.opentracing.Tracer;
+import io.opentracing.tag.Tags;
+import io.smallrye.opentracing.contrib.jaxrs2.client.ClientSpanDecorator;
+import io.smallrye.opentracing.contrib.jaxrs2.client.ClientTracingFeature;
+import io.smallrye.opentracing.contrib.jaxrs2.internal.URIUtils;
+import jakarta.ws.rs.client.ClientRequestContext;
+import jakarta.ws.rs.client.ClientResponseContext;
+import jakarta.ws.rs.core.Feature;
+import jakarta.ws.rs.core.FeatureContext;
+
+import java.util.Collections;
+
+public class MicroProfileOpenTracingTracingFeature implements Feature {
+
+ private final ClientTracingFeature delegate;
+
+ public MicroProfileOpenTracingTracingFeature(final Tracer tracer) {
+ this.delegate = new ClientTracingFeature.Builder(tracer)
+ .withDecorators(Collections.singletonList(new
ClientSpanDecorator() {
+ @Override
+ public void decorateRequest(ClientRequestContext
requestContext, Span span) {
+ Tags.COMPONENT.set(span, "jaxrs");
+ Tags.HTTP_METHOD.set(span, requestContext.getMethod());
+
+ String url = URIUtils.url(requestContext.getUri());
+ if (url != null) {
+ Tags.HTTP_URL.set(span, url);
+ }
+ }
+
+ @Override
+ public void decorateResponse(ClientResponseContext
responseContext, Span span) {
+ Tags.HTTP_STATUS.set(span, responseContext.getStatus());
+ }
+ }))
+ .withTraceSerialization(false)
+ .build();
+ }
+
+ @Override
+ public boolean configure(FeatureContext context) {
+ return this.delegate.configure(context);
+ }
+
+}
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
index 6d0bd391b2..c2574d2a47 100644
---
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTrackingContextResolver.java
@@ -16,16 +16,18 @@
*/
package org.apache.tomee.microprofile.tck.opentracing;
-import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.ws.rs.ext.ContextResolver;
+import jakarta.ws.rs.ext.Provider;
+import org.apache.johnzon.mapper.Mapper;
+import org.apache.johnzon.mapper.MapperBuilder;
-import static
com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+@Provider
+public class MicroProfileOpenTrackingContextResolver implements
ContextResolver<Mapper>{
-public class MicroProfileOpenTrackingContextResolver implements
ContextResolver<ObjectMapper>{
@Override
- public ObjectMapper getContext(final Class<?> type) {
- final ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
- return objectMapper;
+ public Mapper getContext(final Class<?> type) {
+ return new MapperBuilder()
+ .setFailOnUnknownProperties(false)
+ .build();
}
}
diff --git
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJacksonMapperTest.java
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJohnzonMapperTest.java
similarity index 82%
rename from
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJacksonMapperTest.java
rename to
tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJohnzonMapperTest.java
index 11c707a33a..f03eca024d 100644
---
a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJacksonMapperTest.java
+++
b/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/OpenTracingJohnzonMapperTest.java
@@ -16,13 +16,11 @@
*/
package org.apache.tomee.microprofile.tck.opentracing;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.johnzon.mapper.Mapper;
import org.eclipse.microprofile.opentracing.tck.tracer.TestTracer;
import org.testng.annotations.Test;
-import static
com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
-
-public class OpenTracingJacksonMapperTest {
+public class OpenTracingJohnzonMapperTest {
@Test
public void testMapper() throws Exception {
final String json =
"{\"spans\":[{\"traceId\":1,\"spanId\":2,\"logEntries\":[]," +
@@ -33,8 +31,7 @@ public class OpenTracingJacksonMapperTest {
"\"http.status_code\":200,\"component\":\"jaxrs\",\"span.kind\":\"server\",\"http"
+
".method\":\"GET\"}}]}";
- final ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
- objectMapper.readValue(json, TestTracer.class);
+ final Mapper objectMapper = new
MicroProfileOpenTrackingContextResolver().getContext(null);
+ objectMapper.readObject(json, TestTracer.class);
}
}
diff --git
a/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.client.ClientBuilder
b/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.client.ClientBuilder
new file mode 100644
index 0000000000..44bd3b9b6e
--- /dev/null
+++
b/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.client.ClientBuilder
@@ -0,0 +1 @@
+org.apache.tomee.microprofile.tck.opentracing.MicroProfileOpenTracingClientBuilder
\ No newline at end of file
diff --git a/tck/microprofile-tck/opentracing/src/test/resources/arquillian.xml
b/tck/microprofile-tck/opentracing/src/test/resources/arquillian.xml
index 45f33f9603..feec1fda65 100644
--- a/tck/microprofile-tck/opentracing/src/test/resources/arquillian.xml
+++ b/tck/microprofile-tck/opentracing/src/test/resources/arquillian.xml
@@ -26,6 +26,7 @@
<property name="ajpPort">-1</property>
<property name="stopPort">-1</property>
<property name="classifier">microprofile</property>
+ <property name="debug">false</property>
<property name="conf">src/test/conf</property>
<property name="dir">target/tomee</property>
<property name="appWorkingDir">target/workdir</property>
diff --git a/tck/microprofile-tck/opentracing/tck-suite.xml
b/tck/microprofile-tck/opentracing/tck-suite.xml
new file mode 100644
index 0000000000..a092e62ec6
--- /dev/null
+++ b/tck/microprofile-tck/opentracing/tck-suite.xml
@@ -0,0 +1,12 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+
+<suite name="microprofile-opentracing-TCK" verbose="2"
configfailurepolicy="continue" >
+
+ <test name="microprofile-opentracing 1.0 TCK">
+ <packages>
+ <package name="org.eclipse.microprofile.opentracing.tck.*">
+ </package>
+ </packages>
+ </test>
+
+</suite>
\ No newline at end of file
diff --git
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java
index 594350bbef..66f13cb72a 100644
---
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java
+++
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java
@@ -50,7 +50,8 @@ public class TomEEMicroProfileListener {
"org.apache.tomee.microprofile.jwt.cdi.MPJWTCDIExtension",
"org.apache.cxf.microprofile.client.cdi.RestClientExtension",
"io.smallrye.config.inject.ConfigExtension",
- "io.smallrye.metrics.setup.MetricCdiInjectionExtension"
+ "io.smallrye.metrics.setup.MetricCdiInjectionExtension",
+ "io.smallrye.opentracing.SmallRyeTracingDynamicFeature"
};
@SuppressWarnings("Duplicates")