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