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 2023/10/30 14:29:15 UTC
(tomee) 01/02: feat(#TOMEE-4267): MicroProfile Metrics JMX Registrar must be initialized once
This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 793b7bd8cf362c508b38e94c82355c87e436a073
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Mon Oct 30 14:59:21 2023 +0100
feat(#TOMEE-4267): MicroProfile Metrics JMX Registrar must be initialized once
---
.../microprofile/metrics/MPMetricsCDIExtension.java | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MPMetricsCDIExtension.java b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MPMetricsCDIExtension.java
index a058238c91..f406c9614e 100644
--- a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MPMetricsCDIExtension.java
+++ b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/MPMetricsCDIExtension.java
@@ -24,15 +24,23 @@ import jakarta.enterprise.inject.spi.Extension;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicBoolean;
+
public class MPMetricsCDIExtension implements Extension {
+ private static final AtomicBoolean INIT = new AtomicBoolean(false);
+
private void afterDeploymentValidation(@Observes final AfterDeploymentValidation avd, BeanManager bm) {
- try {
- final JmxRegistrar registrar = new JmxRegistrar();
- registrar.init();
- } catch (final Exception e) {
- Logger.getInstance(LogCategory.OPENEJB, MPMetricsCDIExtension.class).error("Can't initialize Metrics Registrar: " + e.getMessage());
+ if (INIT.compareAndSet(false, true)) {
+ try {
+ final JmxRegistrar registrar = new JmxRegistrar();
+ registrar.init();
+
+ } catch (final IOException e) {
+ Logger.getInstance(LogCategory.OPENEJB, MPMetricsCDIExtension.class).error("Can't initialize Metrics Registrar: " + e.getMessage());
+ }
}
}