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 6edb80d9f7 TOMEE-4347 - Smallrye MP Extension are activated even if 
tomee.mp.scan="none"
6edb80d9f7 is described below

commit 6edb80d9f7fb11c0593229afaea9c75770c6bec2
Author: Richard Zowalla <[email protected]>
AuthorDate: Tue Jul 16 08:52:12 2024 +0200

    TOMEE-4347 - Smallrye MP Extension are activated even if 
tomee.mp.scan="none"
---
 .../microprofile/TomEEMicroProfileListener.java    | 33 +++++++++++++---------
 .../microprofile/health/MPHealthCDIExtension.java  | 21 +++++---------
 .../metrics/MetricsFilterRegistration.java         |  4 +++
 .../metrics/MicroProfileMetricsRegistration.java   |  5 ++++
 .../tomee/microprofile/metrics/VendorMetrics.java  |  5 ++++
 .../openapi/MicroProfileOpenApiRegistration.java   |  5 ++++
 .../opentracing/MPOpenTracingCDIExtension.java     |  5 +---
 ...ProfileOpenTracingFinishingFilterInstaller.java |  5 ++++
 8 files changed, 52 insertions(+), 31 deletions(-)

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 ec0f1e148b..67d0a6b4e1 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
@@ -81,7 +81,6 @@ public class TomEEMicroProfileListener {
         if (mpScan.equals("none")) {
             Stream.of(MICROPROFILE_EXTENSIONS).forEach(
                 extension -> SystemInstance.get().setProperty(extension + 
".active", "false"));
-
             return;
         }
 
@@ -111,6 +110,10 @@ public class TomEEMicroProfileListener {
     }
 
     public void processApplication(@Observes final 
BeforeEvent<AfterApplicationCreated> afterApplicationCreated) {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         final ServletContext context = 
afterApplicationCreated.getEvent().getContext();
         final WebAppInfo webApp = afterApplicationCreated.getEvent().getWeb();
 
@@ -118,16 +121,16 @@ public class TomEEMicroProfileListener {
         // that REST path has priority over servlet and there may override old 
applications that have servlets
         // with /* mapping.
         context.getServletRegistrations()
-               .values()
-               .stream()
-               .map(ServletRegistration::getMappings)
-               .flatMap(Collection::stream)
-               .filter(mapping -> mapping.equals("/*"))
-               .findFirst()
-               .ifPresent(mapping -> {
-                   webApp.restClass.removeIf(
-                       className -> 
className.equals(MicroProfileHealthChecksEndpoint.class.getName()));
-               });
+                .values()
+                .stream()
+                .map(ServletRegistration::getMappings)
+                .flatMap(Collection::stream)
+                .filter(mapping -> mapping.equals("/*"))
+                .findFirst()
+                .ifPresent(mapping -> {
+                    webApp.restClass.removeIf(
+                            className -> 
className.equals(MicroProfileHealthChecksEndpoint.class.getName()));
+                });
 
         // we need to register the OpenAPI servlet, but in order to generate 
the OpenAPI model, SmallRye uses Jandex,
         // a XBean Finder equivalent from JBoss. This seems to be a library 
used in many placed, so we want to build the
@@ -146,21 +149,25 @@ public class TomEEMicroProfileListener {
 
             //Check if this was the last webapp to be processed and if so, 
remove it from the cache
             int lastIndex = app.webApps.size() - 1;
-            
if(app.webApps.indexOf(afterApplicationCreated.getEvent().getWeb()) == 
lastIndex) {
+            if 
(app.webApps.indexOf(afterApplicationCreated.getEvent().getWeb()) == lastIndex) 
{
                 indexCache.remove(app);
             }
         } catch (final UncheckedIOException e) {
             throw new IllegalStateException("Can't build Jandex index for 
application " + webApp.contextRoot, e);
         }
-
     }
 
     public void registerMicroProfileJaxRsProviders(@Observes final 
ExtensionProviderRegistration extensionProviderRegistration) {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         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; see TOMEE-4133 for 
details.
         extensionProviderRegistration.getProviders().add(new 
MicroProfileOpenTracingExceptionMapper());
+
     }
 
     /**
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 97acdee1ef..badec17352 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
@@ -43,9 +43,7 @@ import java.util.function.Consumer;
 
 public class MPHealthCDIExtension implements Extension {
 
-    private final String MP_HEALTH_DISABLE_DEFAULT_PROCEDURES = 
"mp.health.disable-default-procedures";
-
-
+    private static final String MP_HEALTH_DISABLE_DEFAULT_PROCEDURES = 
"mp.health.disable-default-procedures";
 
     // Use a single Jakarta Contexts and Dependency Injection instance to 
select and destroy all HealthCheck probes instances
     private Instance<Object> instance;
@@ -66,7 +64,9 @@ public class MPHealthCDIExtension implements Extension {
      * @param beanManager
      */
     public void observeBeforeBeanDiscovery(@Observes final BeforeBeanDiscovery 
bbd, final BeanManager beanManager) {
-        if (isScanMP()) return;
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
 
         
bbd.addAnnotatedType(beanManager.createAnnotatedType(MicroProfileHealthReporterProducer.class),
 "MicroProfileHealthReporterProducer");
     }
@@ -76,7 +76,9 @@ public class MPHealthCDIExtension implements Extension {
      * add them to the {@link MicroProfileHealthReporter}.
      */
     private void afterDeploymentValidation(@Observes final 
AfterDeploymentValidation avd, BeanManager bm) {
-        if (isScanMP()) return;
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
 
         instance = bm.createInstance();
 
@@ -111,15 +113,6 @@ 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/metrics/MetricsFilterRegistration.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MetricsFilterRegistration.java
index 4a5361dc31..8f4807660e 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MetricsFilterRegistration.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MetricsFilterRegistration.java
@@ -21,11 +21,15 @@ import jakarta.ws.rs.container.DynamicFeature;
 import jakarta.ws.rs.container.ResourceInfo;
 import jakarta.ws.rs.core.FeatureContext;
 import jakarta.ws.rs.ext.Provider;
+import org.apache.openejb.loader.SystemInstance;
 
 @Provider
 public class MetricsFilterRegistration implements DynamicFeature {
     @Override
     public void configure(ResourceInfo resourceInfo, FeatureContext context) {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
         context.register(JaxRsMetricsFilter.class);
     }
 }
\ No newline at end of file
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MicroProfileMetricsRegistration.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MicroProfileMetricsRegistration.java
index f6af007d27..90575078cf 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MicroProfileMetricsRegistration.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MicroProfileMetricsRegistration.java
@@ -22,6 +22,7 @@ import jakarta.servlet.ServletContainerInitializer;
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.ServletException;
 import jakarta.servlet.ServletRegistration;
+import org.apache.openejb.loader.SystemInstance;
 
 import java.util.Set;
 
@@ -35,6 +36,10 @@ public class MicroProfileMetricsRegistration implements 
ServletContainerInitiali
 
     @Override
     public void onStartup(final Set<Class<?>> classes, final ServletContext 
ctx) throws ServletException {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         final FilterRegistration.Dynamic metricsServletFilter = 
ctx.addFilter("mp-metrics-filter", JaxRsMetricsServletFilter.class);
         metricsServletFilter.setAsyncSupported(true);
         metricsServletFilter.addMappingForUrlPatterns(null, false, "/*");
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java
index fa7f1fd16a..cc06ddeca9 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java
@@ -19,6 +19,7 @@ package org.apache.tomee.microprofile.metrics;
 import io.smallrye.metrics.SharedMetricRegistries;
 import io.smallrye.metrics.legacyapi.LegacyMetricRegistryAdapter;
 import 
org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.observer.Observes;
 import org.apache.openejb.util.Join;
 import org.eclipse.microprofile.metrics.Metadata;
@@ -49,6 +50,10 @@ public class VendorMetrics {
     private static final Logger LOGGER = 
Logger.getLogger(VendorMetrics.class.getName());
 
     public void afterApplicationDeployed(@Observes 
AssemblerAfterApplicationCreated event) {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         final MetricRegistry registry = 
SharedMetricRegistries.getOrCreate(MetricRegistry.VENDOR_SCOPE);
 
         if (! (registry instanceof LegacyMetricRegistryAdapter)) {
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/openapi/MicroProfileOpenApiRegistration.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/openapi/MicroProfileOpenApiRegistration.java
index 49b2e820b3..4182087d56 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/openapi/MicroProfileOpenApiRegistration.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/openapi/MicroProfileOpenApiRegistration.java
@@ -33,6 +33,7 @@ import jakarta.servlet.ServletContext;
 import jakarta.servlet.ServletException;
 import jakarta.servlet.ServletRegistration;
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -77,6 +78,10 @@ public class MicroProfileOpenApiRegistration implements 
ServletContainerInitiali
 
     @Override
     public void onStartup(final Set<Class<?>> c, final ServletContext 
servletContext) throws ServletException {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         LOGGER.info("Registering OpenAPI servlet on /openapi for application " 
+ servletContext.getContextPath());
 
         final ServletRegistration.Dynamic servletRegistration =
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 027a2ee866..b3028b1960 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
@@ -31,10 +31,7 @@ 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");
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
             return;
         }
         
bbd.addAnnotatedType(beanManager.createAnnotatedType(TracerProducer.class), 
"TracerProducer");
diff --git 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
index a5ddc0fa66..3a16ba5a74 100644
--- 
a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
+++ 
b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/opentracing/MicroProfileOpenTracingFinishingFilterInstaller.java
@@ -23,6 +23,7 @@ import jakarta.servlet.ServletContext;
 import jakarta.servlet.ServletContextEvent;
 import jakarta.servlet.ServletContextListener;
 import jakarta.servlet.annotation.WebListener;
+import org.apache.openejb.loader.SystemInstance;
 
 import java.util.EnumSet;
 
@@ -31,6 +32,10 @@ public class MicroProfileOpenTracingFinishingFilterInstaller 
implements ServletC
 
     @Override
     public void contextInitialized(ServletContextEvent servletContextEvent) {
+        if 
("none".equals(SystemInstance.get().getOptions().get("tomee.mp.scan", "none"))) 
{
+            return;
+        }
+
         final ServletContext servletContext = 
servletContextEvent.getServletContext();
 
         // Span finishing filter

Reply via email to