You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/14 08:29:35 UTC
(camel) branch main updated: camel-core - Avoid clutter JMX with anonymous internal EventNotifiers
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 3d351350912 camel-core - Avoid clutter JMX with anonymous internal EventNotifiers
3d351350912 is described below
commit 3d35135091266b2ced6c447fe92ed86dd7d2e936
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Mar 14 09:26:23 2024 +0100
camel-core - Avoid clutter JMX with anonymous internal EventNotifiers
---
.../camel/impl/debugger/DefaultDebugger.java | 3 +-
.../camel/impl/engine/CamelInternalProcessor.java | 3 +-
.../engine/DefaultRuntimeEndpointRegistry.java | 3 +-
.../camel/impl/cluster/ClusteredRoutePolicy.java | 4 +-
.../apache/camel/impl/console/EventConsole.java | 3 +-
.../org/apache/camel/builder/NotifyBuilder.java | 3 +-
.../org/apache/camel/main/BaseMainSupport.java | 78 ++++++++++++----------
.../camel/main/MainDurationEventNotifier.java | 4 +-
.../management/JmxNotificationEventNotifier.java | 1 +
.../throttling/ThrottlingInflightRoutePolicy.java | 3 +-
10 files changed, 62 insertions(+), 43 deletions(-)
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
index 86f8ca36661..b001120c5ac 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/DefaultDebugger.java
@@ -30,6 +30,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.ExchangePropertyKey;
import org.apache.camel.MessageHistory;
import org.apache.camel.NamedNode;
+import org.apache.camel.NonManagedService;
import org.apache.camel.Processor;
import org.apache.camel.spi.Breakpoint;
import org.apache.camel.spi.CamelEvent;
@@ -369,7 +370,7 @@ public class DefaultDebugger extends ServiceSupport implements Debugger, CamelCo
return "DefaultDebugger";
}
- private final class DebugEventNotifier extends EventNotifierSupport {
+ private final class DebugEventNotifier extends EventNotifierSupport implements NonManagedService {
private DebugEventNotifier() {
setIgnoreCamelContextEvents(true);
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
index 9823a00f2f9..812794723bf 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/CamelInternalProcessor.java
@@ -32,6 +32,7 @@ import org.apache.camel.ExchangePropertyKey;
import org.apache.camel.MessageHistory;
import org.apache.camel.NamedNode;
import org.apache.camel.NamedRoute;
+import org.apache.camel.NonManagedService;
import org.apache.camel.Ordered;
import org.apache.camel.Processor;
import org.apache.camel.Route;
@@ -1219,7 +1220,7 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor implements In
/**
* Event notifier for {@link BacklogTracerAdvice} to capture {@link Exchange} sent to endpoints during tracing.
*/
- private static final class BacklogTraceAdviceEventNotifier extends SimpleEventNotifierSupport {
+ private static final class BacklogTraceAdviceEventNotifier extends SimpleEventNotifierSupport implements NonManagedService {
private final Object dummy = new Object();
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java
index 05e18f97b13..f3748e91ce9 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultRuntimeEndpointRegistry.java
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.camel.Endpoint;
+import org.apache.camel.NonManagedService;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.spi.CamelEvent.ExchangeCreatedEvent;
import org.apache.camel.spi.CamelEvent.ExchangeSendingEvent;
@@ -41,7 +42,7 @@ import org.apache.camel.util.ObjectHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class DefaultRuntimeEndpointRegistry extends EventNotifierSupport implements RuntimeEndpointRegistry {
+public class DefaultRuntimeEndpointRegistry extends EventNotifierSupport implements RuntimeEndpointRegistry, NonManagedService {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRuntimeEndpointRegistry.class);
diff --git a/core/camel-cluster/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java b/core/camel-cluster/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
index 349c2ef4ab4..90a7b5fb6b5 100644
--- a/core/camel-cluster/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
+++ b/core/camel-cluster/src/main/java/org/apache/camel/impl/cluster/ClusteredRoutePolicy.java
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import org.apache.camel.CamelContext;
import org.apache.camel.CamelContextAware;
import org.apache.camel.ExtendedStartupListener;
+import org.apache.camel.NonManagedService;
import org.apache.camel.Route;
import org.apache.camel.ServiceStatus;
import org.apache.camel.api.management.ManagedAttribute;
@@ -360,7 +361,8 @@ public final class ClusteredRoutePolicy extends RoutePolicySupport implements Ca
}
}
- private class CamelContextStartupListener extends SimpleEventNotifierSupport implements ExtendedStartupListener {
+ private class CamelContextStartupListener extends SimpleEventNotifierSupport
+ implements ExtendedStartupListener, NonManagedService {
@Override
public void notify(CamelEvent event) throws Exception {
onCamelContextStarted();
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
index 106472c9416..a12479dc095 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.camel.NonManagedService;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.spi.Configurer;
import org.apache.camel.spi.Metadata;
@@ -171,7 +172,7 @@ public class EventConsole extends AbstractDevConsole {
return arr;
}
- private class ConsoleEventNotifier extends EventNotifierSupport {
+ private class ConsoleEventNotifier extends EventNotifierSupport implements NonManagedService {
@Override
public void notify(CamelEvent event) throws Exception {
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/NotifyBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/NotifyBuilder.java
index 18dde9db1bd..77f14e9bdf1 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/NotifyBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/NotifyBuilder.java
@@ -30,6 +30,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
+import org.apache.camel.NonManagedService;
import org.apache.camel.Predicate;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.CamelEvent;
@@ -1322,7 +1323,7 @@ public class NotifyBuilder {
/**
* Notifier which hooks into Camel to listen for {@link Exchange} relevant events for this builder
*/
- private final class ExchangeNotifier extends EventNotifierSupport {
+ private final class ExchangeNotifier extends EventNotifierSupport implements NonManagedService {
@Override
public void notify(CamelEvent event) throws Exception {
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index da315a53a79..afb703f4e9d 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -42,6 +42,7 @@ import org.apache.camel.Component;
import org.apache.camel.Configuration;
import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoSuchLanguageException;
+import org.apache.camel.NonManagedService;
import org.apache.camel.PropertiesLookupListener;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.Service;
@@ -731,41 +732,7 @@ public abstract class BaseMainSupport extends BaseService {
// we want to log the property placeholder summary after routes has been started,
// but before camel context logs that it has been started, so we need to use an event listener
if (standalone && mainConfigurationProperties.isAutoConfigurationLogSummary()) {
- camelContext.getManagementStrategy().addEventNotifier(new SimpleEventNotifierSupport() {
- @Override
- public boolean isEnabled(CamelEvent event) {
- return event instanceof CamelEvent.CamelContextRoutesStartedEvent;
- }
-
- @Override
- public void notify(CamelEvent event) throws Exception {
- // log summary of configurations
- if (!propertyPlaceholders.isEmpty()) {
- boolean header = true;
- for (var entry : propertyPlaceholders.entrySet()) {
- String k = entry.getKey().toString();
- Object v = entry.getValue();
- Object dv = propertyPlaceholders.getDefaultValue(k);
- // skip logging configurations that are using default-value
- // or a kamelet that uses templateId as a parameter
- boolean same = ObjectHelper.equal(v, dv);
- boolean skip = "templateId".equals(k);
- if (!same && !skip) {
- if (header) {
- LOG.info("Property-placeholders summary");
- header = false;
- }
- String loc = locationSummary(propertyPlaceholders, k);
- if (SensitiveUtils.containsSensitive(k)) {
- LOG.info(" {} {}=xxxxxx", loc, k);
- } else {
- LOG.info(" {} {}={}", loc, k, v);
- }
- }
- }
- }
- }
- });
+ camelContext.getManagementStrategy().addEventNotifier(new PlaceholderSummaryEventNotifier(propertyPlaceholders));
}
}
@@ -2324,4 +2291,45 @@ public abstract class BaseMainSupport extends BaseService {
}
}
+ private static class PlaceholderSummaryEventNotifier extends SimpleEventNotifierSupport implements NonManagedService {
+ private final OrderedLocationProperties propertyPlaceholders;
+
+ public PlaceholderSummaryEventNotifier(OrderedLocationProperties propertyPlaceholders) {
+ this.propertyPlaceholders = propertyPlaceholders;
+ }
+
+ @Override
+ public boolean isEnabled(CamelEvent event) {
+ return event instanceof CamelEvent.CamelContextRoutesStartedEvent;
+ }
+
+ @Override
+ public void notify(CamelEvent event) throws Exception {
+ // log summary of configurations
+ if (!propertyPlaceholders.isEmpty()) {
+ boolean header = true;
+ for (var entry : propertyPlaceholders.entrySet()) {
+ String k = entry.getKey().toString();
+ Object v = entry.getValue();
+ Object dv = propertyPlaceholders.getDefaultValue(k);
+ // skip logging configurations that are using default-value
+ // or a kamelet that uses templateId as a parameter
+ boolean same = ObjectHelper.equal(v, dv);
+ boolean skip = "templateId".equals(k);
+ if (!same && !skip) {
+ if (header) {
+ LOG.info("Property-placeholders summary");
+ header = false;
+ }
+ String loc = locationSummary(propertyPlaceholders, k);
+ if (SensitiveUtils.containsSensitive(k)) {
+ LOG.info(" {} {}=xxxxxx", loc, k);
+ } else {
+ LOG.info(" {} {}={}", loc, k, v);
+ }
+ }
+ }
+ }
+ }
+ }
}
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainDurationEventNotifier.java b/core/camel-main/src/main/java/org/apache/camel/main/MainDurationEventNotifier.java
index 9fde1dd5ed7..c94ed37a44a 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainDurationEventNotifier.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainDurationEventNotifier.java
@@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.CamelContext;
+import org.apache.camel.NonManagedService;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.support.EventNotifierSupport;
import org.apache.camel.util.StopWatch;
@@ -32,7 +33,8 @@ import org.slf4j.LoggerFactory;
* A {@link org.apache.camel.spi.EventNotifier} to trigger (shutdown of the Main JVM, or stopping all routes) when
* maximum number of messages has been processed.
*/
-public class MainDurationEventNotifier extends EventNotifierSupport {
+public class MainDurationEventNotifier extends EventNotifierSupport implements NonManagedService {
+
private static final Logger LOG = LoggerFactory.getLogger(MainDurationEventNotifier.class);
private enum Action {
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/JmxNotificationEventNotifier.java b/core/camel-management/src/main/java/org/apache/camel/management/JmxNotificationEventNotifier.java
index e74d4aa5157..7e51c9c88ea 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/JmxNotificationEventNotifier.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/JmxNotificationEventNotifier.java
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
* A JMX based {@link EventNotifier} which broadcasts JMX {@link Notification}s.
*/
public class JmxNotificationEventNotifier extends EventNotifierSupport implements JmxNotificationBroadcasterAware {
+
private static final Logger LOG = LoggerFactory.getLogger(JmxNotificationEventNotifier.class);
private final AtomicLong counter = new AtomicLong();
private NotificationBroadcasterSupport notificationBroadcaster;
diff --git a/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingInflightRoutePolicy.java b/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingInflightRoutePolicy.java
index f979d92b205..d31ac648bd7 100644
--- a/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingInflightRoutePolicy.java
+++ b/core/camel-support/src/main/java/org/apache/camel/throttling/ThrottlingInflightRoutePolicy.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.Consumer;
import org.apache.camel.Exchange;
import org.apache.camel.LoggingLevel;
+import org.apache.camel.NonManagedService;
import org.apache.camel.Route;
import org.apache.camel.spi.CamelEvent;
import org.apache.camel.spi.CamelEvent.ExchangeCompletedEvent;
@@ -285,7 +286,7 @@ public class ThrottlingInflightRoutePolicy extends RoutePolicySupport implements
* {@link org.apache.camel.spi.EventNotifier} to keep track on when {@link Exchange} is done, so we can throttle
* accordingly.
*/
- private class ContextScopedEventNotifier extends EventNotifierSupport {
+ private class ContextScopedEventNotifier extends EventNotifierSupport implements NonManagedService {
@Override
public void notify(CamelEvent event) {