This is an automated email from the ASF dual-hosted git repository.

rzo1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/main by this push:
     new ee15b420f3 TOMEE-4347 - Smallrye MP Extension are activated even if 
tomee.mp.scan="none"
ee15b420f3 is described below

commit ee15b420f355b58fc30ee30f04e53f90dd868831
Author: Richard Zowalla <[email protected]>
AuthorDate: Mon Jun 3 10:01:29 2024 +0200

    TOMEE-4347 - Smallrye MP Extension are activated even if 
tomee.mp.scan="none"
---
 .../faulttolerance/MPFaultToleranceCDIExtension.java       |  9 +++++++++
 .../tomee/microprofile/health/MPHealthCDIExtension.java    | 14 ++++++++++++++
 .../opentracing/MPOpenTracingCDIExtension.java             |  8 ++++++++
 .../services/jakarta.enterprise.inject.spi.Extension       |  1 -
 4 files changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/faulttolerance/MPFaultToleranceCDIExtension.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/faulttolerance/MPFaultToleranceCDIExtension.java
index e093a15c05..eedbd89e9d 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/faulttolerance/MPFaultToleranceCDIExtension.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/faulttolerance/MPFaultToleranceCDIExtension.java
@@ -23,6 +23,7 @@ import jakarta.enterprise.inject.spi.AnnotatedMethod;
 import jakarta.enterprise.inject.spi.BeanManager;
 import jakarta.enterprise.inject.spi.Extension;
 import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
+import org.apache.openejb.loader.SystemInstance;
 import org.eclipse.microprofile.faulttolerance.Asynchronous;
 import org.eclipse.microprofile.faulttolerance.Bulkhead;
 import org.eclipse.microprofile.faulttolerance.CircuitBreaker;
@@ -32,6 +33,7 @@ import org.eclipse.microprofile.faulttolerance.Timeout;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Stream;
 
 /**
  * This class is more a hack than an actual peace of integration code for 
SmallRye Fault Tolerance. It addresses an issue
@@ -64,6 +66,13 @@ public class MPFaultToleranceCDIExtension implements 
Extension {
      */
     <X> void addFaultToleranceInterceptorBinding(@Observes final 
ProcessAnnotatedType<X> pat, final BeanManager bm) {
 
+        final String mpScan = 
SystemInstance.get().getOptions().get("tomee.mp.scan", "none");
+
+        if (mpScan.equals("none")) {
+            
SystemInstance.get().setProperty(MPFaultToleranceCDIExtension.class.getName() + 
".active", "false");
+            return;
+        }
+
         // check fault tolerance annotations on classes
         if (hasFaultToleranceAnnotations(pat.getAnnotatedType())) {
             
pat.configureAnnotatedType().add(FaultToleranceBinding.Literal.INSTANCE);
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/health/MPHealthCDIExtension.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/health/MPHealthCDIExtension.java
index 2151c72b08..97acdee1ef 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/health/MPHealthCDIExtension.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/health/MPHealthCDIExtension.java
@@ -26,6 +26,7 @@ import jakarta.enterprise.inject.spi.BeforeShutdown;
 import jakarta.enterprise.inject.spi.Extension;
 import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
 import jakarta.enterprise.util.AnnotationLiteral;
+import org.apache.openejb.loader.SystemInstance;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.health.HealthCheck;
@@ -65,6 +66,8 @@ public class MPHealthCDIExtension implements Extension {
      * @param beanManager
      */
     public void observeBeforeBeanDiscovery(@Observes final BeforeBeanDiscovery 
bbd, final BeanManager beanManager) {
+        if (isScanMP()) return;
+
         
bbd.addAnnotatedType(beanManager.createAnnotatedType(MicroProfileHealthReporterProducer.class),
 "MicroProfileHealthReporterProducer");
     }
 
@@ -73,6 +76,8 @@ public class MPHealthCDIExtension implements Extension {
      * add them to the {@link MicroProfileHealthReporter}.
      */
     private void afterDeploymentValidation(@Observes final 
AfterDeploymentValidation avd, BeanManager bm) {
+        if (isScanMP()) return;
+
         instance = bm.createInstance();
 
         final Instance<MicroProfileHealthReporter> reporters = 
instance.select(MicroProfileHealthReporter.class);
@@ -106,6 +111,15 @@ public class MPHealthCDIExtension implements Extension {
         }
     }
 
+    private boolean isScanMP() {
+        final String mpScan = 
SystemInstance.get().getOptions().get("tomee.mp.scan", "none");
+        if (mpScan.equals("none")) {
+            
SystemInstance.get().setProperty(MPHealthCDIExtension.class.getName() + 
".active", "false");
+            return true;
+        }
+        return false;
+    }
+
     private void addHealthChecks(
         AnnotationLiteral qualifier,
         BiConsumer<HealthCheck, ClassLoader> healthFunction, List<HealthCheck> 
healthChecks) {
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MPOpenTracingCDIExtension.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MPOpenTracingCDIExtension.java
index 15914b52fc..64d8fa464d 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MPOpenTracingCDIExtension.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MPOpenTracingCDIExtension.java
@@ -20,6 +20,8 @@ import jakarta.enterprise.event.Observes;
 import jakarta.enterprise.inject.spi.BeanManager;
 import jakarta.enterprise.inject.spi.BeforeBeanDiscovery;
 import jakarta.enterprise.inject.spi.Extension;
+import org.apache.openejb.loader.SystemInstance;
+import 
org.apache.tomee.microprofile.faulttolerance.MPFaultToleranceCDIExtension;
 
 public class MPOpenTracingCDIExtension implements Extension {
 
@@ -30,6 +32,12 @@ public class MPOpenTracingCDIExtension implements Extension {
      * @param beanManager the BeanManager reference
      */
     public void observeBeforeBeanDiscovery(@Observes final BeforeBeanDiscovery 
bbd, final BeanManager beanManager) {
+        final String mpScan = 
SystemInstance.get().getOptions().get("tomee.mp.scan", "none");
+
+        if (mpScan.equals("none")) {
+            
SystemInstance.get().setProperty(MPOpenTracingCDIExtension.class.getName() + 
".active", "false");
+            return;
+        }
         
bbd.addAnnotatedType(beanManager.createAnnotatedType(TracerProducer.class), 
"TracerProducer");
     }
 
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
 
b/tomee/tomee-microprofile/mp-common/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
index f8e0f665f8..f0a43802c5 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension
@@ -1,5 +1,4 @@
 org.apache.tomee.microprofile.health.MPHealthCDIExtension
-org.apache.tomee.microprofile.metrics.MPMetricsCDIExtension
 org.apache.tomee.microprofile.opentracing.MPOpenTracingCDIExtension
 org.apache.tomee.microprofile.faulttolerance.MPFaultToleranceCDIExtension
 

Reply via email to