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/18 17:11:37 UTC
(camel) 01/02: CAMEL-20225: simplify getting a ZonedDateTime
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
commit f7048e5f4e370a418eb7cca3cca4ef9f10c3db83
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Dec 15 13:08:09 2023 -0300
CAMEL-20225: simplify getting a ZonedDateTime
---
.../org/apache/camel/component/cloudevents/CloudEvent.java | 5 +----
.../component/knative/ce/AbstractCloudEventProcessor.java | 5 +----
core/camel-api/src/main/java/org/apache/camel/Clock.java | 13 +++++++++++++
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/components/camel-cloudevents/src/main/java/org/apache/camel/component/cloudevents/CloudEvent.java b/components/camel-cloudevents/src/main/java/org/apache/camel/component/cloudevents/CloudEvent.java
index 9f3d6451e59..c181cb01733 100644
--- a/components/camel-cloudevents/src/main/java/org/apache/camel/component/cloudevents/CloudEvent.java
+++ b/components/camel-cloudevents/src/main/java/org/apache/camel/component/cloudevents/CloudEvent.java
@@ -16,8 +16,6 @@
*/
package org.apache.camel.component.cloudevents;
-import java.time.Instant;
-import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collection;
@@ -76,8 +74,7 @@ public interface CloudEvent {
* Construct event time from given Camel exchange.
*/
default String getEventTime(Exchange exchange) {
- final ZonedDateTime created
- = ZonedDateTime.ofInstant(Instant.ofEpochMilli(exchange.getClock().getCreated()), ZoneId.systemDefault());
+ final ZonedDateTime created = exchange.getClock().asZonedCreationDateTime();
return DateTimeFormatter.ISO_INSTANT.format(created);
}
diff --git a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/ce/AbstractCloudEventProcessor.java b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/ce/AbstractCloudEventProcessor.java
index 3165c2d8911..2c9fee8985a 100644
--- a/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/ce/AbstractCloudEventProcessor.java
+++ b/components/camel-knative/camel-knative-component/src/main/java/org/apache/camel/component/knative/ce/AbstractCloudEventProcessor.java
@@ -17,8 +17,6 @@
package org.apache.camel.component.knative.ce;
import java.io.InputStream;
-import java.time.Instant;
-import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
@@ -122,8 +120,7 @@ abstract class AbstractCloudEventProcessor implements CloudEventProcessor {
setCloudEventHeader(headers, CloudEvent.CAMEL_CLOUD_EVENT_SOURCE, exchange::getFromRouteId);
setCloudEventHeader(headers, CloudEvent.CAMEL_CLOUD_EVENT_VERSION, ce::version);
setCloudEventHeader(headers, CloudEvent.CAMEL_CLOUD_EVENT_TIME, () -> {
- final ZonedDateTime created
- = ZonedDateTime.ofInstant(Instant.ofEpochMilli(exchange.getClock().getCreated()), ZoneId.systemDefault());
+ final ZonedDateTime created = exchange.getClock().asZonedCreationDateTime();
return DateTimeFormatter.ISO_INSTANT.format(created);
});
diff --git a/core/camel-api/src/main/java/org/apache/camel/Clock.java b/core/camel-api/src/main/java/org/apache/camel/Clock.java
index f19ecd35a07..78983ca05a0 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Clock.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Clock.java
@@ -17,6 +17,11 @@
package org.apache.camel;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Date;
+
/**
* A clock used to track the lifetime of an exchange
*/
@@ -35,4 +40,12 @@ public interface Clock {
* @see System#currentTimeMillis()
*/
long getCreated();
+
+ /**
+ * Get the creation date/time as with time-zone information
+ * @return A ZonedDateTime instance from the computed creation time
+ */
+ default ZonedDateTime asZonedCreationDateTime() {
+ return ZonedDateTime.ofInstant(Instant.ofEpochMilli(getCreated()), ZoneId.systemDefault());
+ }
}