This is an automated email from the ASF dual-hosted git repository. orpiske 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 13fe1fa080a CAMEL-20225: initial rework of message history to use the new clock API (#12479) 13fe1fa080a is described below commit 13fe1fa080a0c9d31e15221ac8074c8f98943dd2 Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com> AuthorDate: Tue Dec 19 10:14:35 2023 -0300 CAMEL-20225: initial rework of message history to use the new clock API (#12479) --- .../metrics/messagehistory/MetricsMessageHistoryFactory.java | 5 +++++ .../micrometer/messagehistory/MicrometerMessageHistory.java | 9 +++++++++ .../messagehistory/MicrometerMessageHistoryFactory.java | 5 +++++ .../java/org/apache/camel/spi/MessageHistoryFactory.java | 12 ++++++++++++ .../org/apache/camel/impl/engine/CamelInternalProcessor.java | 2 +- .../camel/impl/engine/DefaultMessageHistoryFactory.java | 5 +++++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java index e2400281b55..efb34f95230 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java @@ -172,6 +172,11 @@ public class MetricsMessageHistoryFactory extends ServiceSupport return new MetricsMessageHistory(routeId, node, timer, timestamp, msg); } + @Override + public MessageHistory newMessageHistory(String routeId, NamedNode node, Exchange exchange) { + return newMessageHistory(routeId, node, System.currentTimeMillis(), exchange); + } + private String createName(String type, String routeId, String id) { String name = camelContext.getManagementName() != null ? camelContext.getManagementName() : camelContext.getName(); diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java index c88c8f9912d..4a6ddd517ea 100644 --- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java +++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistory.java @@ -45,6 +45,15 @@ public class MicrometerMessageHistory extends DefaultMessageHistory { this.sample = Timer.start(meterRegistry); } + public MicrometerMessageHistory(MeterRegistry meterRegistry, Route route, NamedNode namedNode, + MicrometerMessageHistoryNamingStrategy namingStrategy, Message message) { + super(route.getId(), namedNode, System.currentTimeMillis(), message); + this.meterRegistry = meterRegistry; + this.route = route; + this.namingStrategy = namingStrategy; + this.sample = Timer.start(meterRegistry); + } + @Override public void nodeProcessingDone() { super.nodeProcessingDone(); diff --git a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java index 066dbd4195d..278f672bea2 100644 --- a/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java +++ b/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/messagehistory/MicrometerMessageHistoryFactory.java @@ -154,6 +154,11 @@ public class MicrometerMessageHistoryFactory extends ServiceSupport } } + @Override + public MessageHistory newMessageHistory(String routeId, NamedNode node, Exchange exchange) { + return newMessageHistory(routeId, node, System.currentTimeMillis(), exchange); + } + @Override protected void doStart() throws Exception { if (meterRegistry == null) { diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java b/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java index c9ebd9e9896..12534d070a9 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/MessageHistoryFactory.java @@ -35,9 +35,21 @@ public interface MessageHistoryFactory extends StaticService, CamelContextAware * @param timestamp the time the message processed at this node. * @param exchange the current exchange * @return a new {@link MessageHistory} + * @deprecated use {@link #newMessageHistory(String, NamedNode, Exchange)} */ + @Deprecated(since = "4.4.0") MessageHistory newMessageHistory(String routeId, NamedNode node, long timestamp, Exchange exchange); + /** + * Creates a new {@link MessageHistory} + * + * @param routeId the route id + * @param node the node in the route + * @param exchange the current exchange + * @return a new {@link MessageHistory} + */ + MessageHistory newMessageHistory(String routeId, NamedNode node, Exchange exchange); + /** * Whether to make a copy of the message in the {@link MessageHistory}. By default this is turned off. Beware that * you should not mutate or change the content on the copied message, as its purpose is as a read-only view of the 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 9a581058ba2..a821bb0d68a 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 @@ -930,7 +930,7 @@ public class CamelInternalProcessor extends DelegateAsyncProcessor implements In targetRouteId = ExchangeHelper.getRouteId(exchange); } - MessageHistory history = factory.newMessageHistory(targetRouteId, definition, System.currentTimeMillis(), exchange); + MessageHistory history = factory.newMessageHistory(targetRouteId, definition, exchange); if (history != null) { List<MessageHistory> list = exchange.getProperty(ExchangePropertyKey.MESSAGE_HISTORY, List.class); if (list == null) { diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java index b9adef565b3..14e9dae699b 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultMessageHistoryFactory.java @@ -66,6 +66,11 @@ public class DefaultMessageHistoryFactory extends ServiceSupport implements Mess return new DefaultMessageHistory(routeId, node, timestamp, msg); } + @Override + public MessageHistory newMessageHistory(String routeId, NamedNode node, Exchange exchange) { + return newMessageHistory(routeId, node, System.currentTimeMillis(), exchange); + } + @ManagedAttribute(description = "Whether message history is enabled") public boolean isEnabled() { return camelContext != null ? camelContext.isMessageHistory() : false;