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")

Reply via email to