You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/12/19 13:14:42 UTC
(camel) branch main updated: CAMEL-20225: initial rework of message history to use the new clock API (#12479)
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 <or...@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;