You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2022/12/15 15:55:35 UTC
[tomee] branch opentracing-provider created (now 00b81fc7ae)
This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a change to branch opentracing-provider
in repository https://gitbox.apache.org/repos/asf/tomee.git
at 00b81fc7ae Make sure providers aren't scanned if Application returns classes or singletons. Register OpenTracing providers during MP initialization
This branch includes the following new commits:
new 00b81fc7ae Make sure providers aren't scanned if Application returns classes or singletons. Register OpenTracing providers during MP initialization
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[tomee] 01/01: Make sure providers aren't scanned if Application returns classes or singletons. Register OpenTracing providers during MP initialization
Posted by jl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch opentracing-provider
in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 00b81fc7ae2a4983acd050e69a01608bc9537849
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Thu Dec 15 16:55:25 2022 +0100
Make sure providers aren't scanned if Application returns classes or singletons. Register OpenTracing providers during MP initialization
---
.../microprofile/jwt/jaxrs/MPJWPProviderRegistration.java | 2 +-
.../java/org/apache/openejb/server/rest/RESTService.java | 4 ++--
.../MicroProfileOpenTracingTCKDeploymentPackager.java | 1 -
.../resources/META-INF/services/jakarta.ws.rs.ext.Providers | 2 --
tomee/tomee-microprofile/mp-common/pom.xml | 6 ++++++
.../apache/tomee/microprofile/TomEEMicroProfileListener.java | 12 ++++++++++++
.../opentracing}/MicroProfileOpenTracingExceptionMapper.java | 4 ++--
7 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/jaxrs/MPJWPProviderRegistration.java b/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/jaxrs/MPJWPProviderRegistration.java
index 38e06af043..b5901e2b7f 100644
--- a/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/jaxrs/MPJWPProviderRegistration.java
+++ b/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/jaxrs/MPJWPProviderRegistration.java
@@ -24,7 +24,7 @@ import org.apache.tomee.microprofile.jwt.bval.ValidationInterceptorsFeature;
/**
* OpenEJB/TomEE hack to register a new provider on the fly
* Could be package in tomee only or done in another way
- *
+ * <p>
* As soon as Roberto is done with the packaging, we can remove all this and providers are going to be scanned automatically
*/
public class MPJWPProviderRegistration {
diff --git a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
index 064ce6ddef..9f77bbb764 100644
--- a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
+++ b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
@@ -364,8 +364,8 @@ public abstract class RESTService implements ServerService, SelfManaging {
.filter(Objects::nonNull)
.anyMatch(aClass -> aClass.getDeclaredMethods().length > 0);
- // if (useDiscoveredProviders(appInfo, !hasExplicitlyDefinedApplication)) {
- if (useDiscoveredProviders(appInfo)) {
+ if (useDiscoveredProviders(appInfo, !hasExplicitlyDefinedApplication)) {
+ // if (useDiscoveredProviders(appInfo)) {
final Set<String> jaxRsProviders = new HashSet<>(webApp.jaxRsProviders);
jaxRsProviders.addAll(appInfo.jaxRsProviders);
additionalProviders.addAll(appProviders(jaxRsProviders, classLoader));
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 c269c6cb67..43f3e4148c 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
@@ -51,7 +51,6 @@ public class MicroProfileOpenTracingTCKDeploymentPackager extends ServletProtoco
webArchive.addAsLibrary(jarLocation(ThreadLocalScopeManager.class));
webArchive.addAsWebInfResource("META-INF/beans.xml");
webArchive.addClass(MicroProfileOpenTracingTCKTracer.class);
- webArchive.addClass(MicroProfileOpenTracingExceptionMapper.class);
;
System.out.println(webArchive.toString(true));
diff --git a/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.ext.Providers b/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.ext.Providers
deleted file mode 100644
index 6bbb3bed2c..0000000000
--- a/tck/microprofile-tck/opentracing/src/test/resources/META-INF/services/jakarta.ws.rs.ext.Providers
+++ /dev/null
@@ -1,2 +0,0 @@
-org.apache.tomee.microprofile.tck.opentracing.MicroProfileOpenTrackingContextResolver
-org.apache.tomee.microprofile.tck.opentracing.MicroProfileOpenTracingExceptionMapper
diff --git a/tomee/tomee-microprofile/mp-common/pom.xml b/tomee/tomee-microprofile/mp-common/pom.xml
index 5938a3d732..28ec5fcb3c 100644
--- a/tomee/tomee-microprofile/mp-common/pom.xml
+++ b/tomee/tomee-microprofile/mp-common/pom.xml
@@ -171,6 +171,12 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <artifactId>openejb-cxf-rs</artifactId>
+ <groupId>org.apache.tomee</groupId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
<!-- MicroProfile -->
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 fe02122c44..a8687f6890 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
@@ -16,6 +16,7 @@
*/
package org.apache.tomee.microprofile;
+import io.smallrye.opentracing.SmallRyeTracingDynamicFeature;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletRegistration;
import org.apache.openejb.assembler.classic.WebAppInfo;
@@ -25,12 +26,14 @@ import org.apache.openejb.loader.Files;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.observer.Observes;
import org.apache.openejb.observer.event.BeforeEvent;
+import org.apache.openejb.server.cxf.rs.event.ExtensionProviderRegistration;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
import org.apache.tomee.catalina.event.AfterApplicationCreated;
import org.apache.tomee.installer.Paths;
import org.apache.tomee.microprofile.health.MicroProfileHealthChecksEndpoint;
import org.apache.tomee.microprofile.openapi.MicroProfileOpenApiRegistration;
+import org.apache.tomee.microprofile.opentracing.MicroProfileOpenTracingExceptionMapper;
import org.jboss.jandex.Index;
import org.jboss.jandex.Indexer;
@@ -143,6 +146,15 @@ public class TomEEMicroProfileListener {
}
+ public void registerMicroProfileJaxRsProviders(@Observes final ExtensionProviderRegistration extensionProviderRegistration) {
+ extensionProviderRegistration.getProviders().add(new SmallRyeTracingDynamicFeature());
+
+ // The OpenTracing TCK tests that an exception is turned into a 500. JAX-RS 3.1 (?) mandates a default mapper
+ // which was not required on the current versions. I'm not sure if we should do this by default in the server
+ // of if we should do it with an arquillian extension to add it only for the TCK
+ extensionProviderRegistration.getProviders().add(new MicroProfileOpenTracingExceptionMapper());
+ }
+
/**
* Constructs an Index of the passed files and directories. Files may be class files or JAR files.
* Directories are scanned for class files recursively. This is a copy of the Index.of() implementation which does
diff --git a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingExceptionMapper.java
similarity index 95%
rename from tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java
rename to tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingExceptionMapper.java
index 56ae9b18fc..40dd5ea0e6 100644
--- a/tck/microprofile-tck/opentracing/src/test/java/org.apache.tomee.microprofile.tck.opentracing/MicroProfileOpenTracingExceptionMapper.java
+++ b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingExceptionMapper.java
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tomee.microprofile.tck.opentracing;
+package org.apache.tomee.microprofile.opentracing;
-import jakarta.ws.rs.ext.Provider;
import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.Provider;
@Provider
public class MicroProfileOpenTracingExceptionMapper implements jakarta.ws.rs.ext.ExceptionMapper<RuntimeException> {