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 12108f1622f CAMEL-20255: cleanup deprecated timestamp-based methods
12108f1622f is described below

commit 12108f1622f1bf8874c3179eb57a3d601a2d7a91
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Feb 27 14:42:13 2024 +0100

    CAMEL-20255: cleanup deprecated timestamp-based methods
---
 .../main/java/org/apache/camel/CamelContext.java   | 23 +++---------
 .../main/java/org/apache/camel/clock/Clock.java    | 10 ++++++
 .../camel/impl/engine/AbstractCamelContext.java    | 26 ++++++--------
 .../camel/impl/console/ContextDevConsole.java      |  5 +--
 .../camel/impl/engine/DefaultCamelContextTest.java |  4 +--
 .../management/mbean/ManagedCamelContext.java      |  5 +--
 .../apache/camel/support/CamelContextHelper.java   | 42 ++++++++++++++++++++++
 .../ROOT/pages/camel-4x-upgrade-guide-4_5.adoc     | 12 +++++++
 8 files changed, 86 insertions(+), 41 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java 
b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
index 1ade841251b..8132380eef0 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
@@ -16,8 +16,8 @@
  */
 package org.apache.camel;
 
+import java.time.Duration;
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -162,26 +162,11 @@ public interface CamelContext extends 
CamelContextLifecycle, RuntimeConfiguratio
     String getVersion();
 
     /**
-     * Gets the uptime in a human readable format
+     * Gets the uptime for this context.
      *
-     * @return the uptime in days/hours/minutes
+     * @return the uptime
      */
-    @Deprecated
-    String getUptime();
-
-    /**
-     * Gets the uptime in milli seconds
-     *
-     * @return the uptime in millis seconds
-     */
-    @Deprecated
-    long getUptimeMillis();
-
-    /**
-     * Gets the date and time Camel was started up.
-     */
-    @Deprecated
-    Date getStartDate();
+    Duration getUptime();
 
     /**
      * Gets a clock instance that keeps track of time for relevant 
CamelContext events
diff --git a/core/camel-api/src/main/java/org/apache/camel/clock/Clock.java 
b/core/camel-api/src/main/java/org/apache/camel/clock/Clock.java
index 3cee3bd99f2..6c293946bab 100644
--- a/core/camel-api/src/main/java/org/apache/camel/clock/Clock.java
+++ b/core/camel-api/src/main/java/org/apache/camel/clock/Clock.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.clock;
 
+import java.time.Duration;
 import java.time.Instant;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -58,4 +59,13 @@ public interface Clock {
     default Date asDate() {
         return new Date(getCreated());
     }
+
+    /**
+     * Get the elapsed duration for this clock in the standard Java Duration
+     *
+     * @return A new Duration instance representing the elapsed duration for 
this clock
+     */
+    default Duration asDuration() {
+        return Duration.ofMillis(elapsed());
+    }
 }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 22ba27a215c..d9e9f236e1c 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -18,11 +18,11 @@ package org.apache.camel.impl.engine;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -74,6 +74,7 @@ import org.apache.camel.TypeConverter;
 import org.apache.camel.VetoCamelContextStartException;
 import org.apache.camel.api.management.JmxSystemPropertyKeys;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
+import org.apache.camel.clock.Clock;
 import org.apache.camel.clock.ContextClock;
 import org.apache.camel.clock.EventClock;
 import org.apache.camel.console.DevConsoleRegistry;
@@ -1879,22 +1880,15 @@ public abstract class AbstractCamelContext extends 
BaseService
     }
 
     @Override
-    public String getUptime() {
-        long delta = getUptimeMillis();
-        if (delta == 0) {
-            return "";
-        }
-        return TimeUtils.printDuration(delta);
-    }
+    public Duration getUptime() {
+        EventClock<ContextEvents> contextClock = getClock();
 
-    @Override
-    public long getUptimeMillis() {
-        return clock.elapsed(ContextEvents.START, 0);
-    }
+        final Clock startClock = contextClock.get(ContextEvents.START);
+        if (startClock == null) {
+            return Duration.ZERO;
+        }
 
-    @Override
-    public Date getStartDate() {
-        return clock.asDate(ContextEvents.START, null);
+        return startClock.asDuration();
     }
 
     @Override
@@ -3008,7 +3002,7 @@ public abstract class AbstractCamelContext extends 
BaseService
             if (LOG.isInfoEnabled()) {
                 String taken = TimeUtils.printDuration(stopWatch.taken(), 
true);
                 LOG.info("Apache Camel {} ({}) shutdown in {} (uptime:{})", 
getVersion(), camelContextExtension.getName(),
-                        taken, getUptime());
+                        taken, CamelContextHelper.getUptime(this));
             }
         }
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
index 56712ecd372..3b332b769ee 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
@@ -41,7 +41,7 @@ public class ContextDevConsole extends AbstractDevConsole {
 
         sb.append(String.format("Apache Camel %s %s (%s) uptime %s", 
getCamelContext().getVersion(),
                 getCamelContext().getStatus().name().toLowerCase(Locale.ROOT), 
getCamelContext().getName(),
-                getCamelContext().getUptime()));
+                getCamelContext().getUptime().toMillis()));
         if (getCamelContext().getDescription() != null) {
             sb.append(String.format("\n    %s", 
getCamelContext().getDescription()));
         }
@@ -115,7 +115,8 @@ public class ContextDevConsole extends AbstractDevConsole {
         root.put("version", getCamelContext().getVersion());
         root.put("state", getCamelContext().getStatus().name());
         root.put("phase", 
getCamelContext().getCamelContextExtension().getStatusPhase());
-        root.put("uptime", getCamelContext().getUptime());
+
+        root.put("uptime", getCamelContext().getUptime().toMillis());
 
         ManagedCamelContext mcc = 
getCamelContext().getCamelContextExtension().getContextPlugin(ManagedCamelContext.class);
         if (mcc != null) {
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
index 61f1b97cecd..128045cba58 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
@@ -57,9 +57,9 @@ public class DefaultCamelContextTest extends TestSupport {
     @Test
     public void testStartDate() {
         DefaultCamelContext ctx = new DefaultCamelContext(false);
-        assertNull(ctx.getStartDate());
+        assertNull(CamelContextHelper.getStartDate(ctx));
         ctx.start();
-        assertNotNull(ctx.getStartDate());
+        assertNotNull(CamelContextHelper.getStartDate(ctx));
     }
 
     @Test
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
index 000b07c00de..7f151692d92 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
@@ -52,6 +52,7 @@ import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.spi.ManagementStrategy;
 import org.apache.camel.spi.UnitOfWork;
+import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.PluginHelper;
 
 @ManagedResource(description = "Managed CamelContext")
@@ -161,12 +162,12 @@ public class ManagedCamelContext extends 
ManagedPerformanceCounter implements Ti
 
     @Override
     public String getUptime() {
-        return context.getUptime();
+        return CamelContextHelper.getUptime(context);
     }
 
     @Override
     public long getUptimeMillis() {
-        return context.getUptimeMillis();
+        return context.getUptime().toMillis();
     }
 
     @Override
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/CamelContextHelper.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/CamelContextHelper.java
index 4b9f8a27ec5..7b81d586be7 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/CamelContextHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/CamelContextHelper.java
@@ -17,6 +17,7 @@
 package org.apache.camel.support;
 
 import java.time.Duration;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -25,6 +26,7 @@ import java.util.function.Predicate;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
+import org.apache.camel.ContextEvents;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.NamedNode;
@@ -32,10 +34,13 @@ import org.apache.camel.NamedRoute;
 import org.apache.camel.NoSuchBeanException;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.clock.Clock;
+import org.apache.camel.clock.EventClock;
 import org.apache.camel.spi.NormalizedEndpointUri;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.spi.RouteStartupOrder;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.TimeUtils;
 
 import static org.apache.camel.util.ObjectHelper.isNotEmpty;
 
@@ -639,4 +644,41 @@ public final class CamelContextHelper {
         }
     }
 
+    /**
+     * Gets the uptime in a human-readable format
+     *
+     * @return the uptime in days/hours/minutes
+     */
+    public static String getUptime(CamelContext context) {
+        long delta = context.getUptime().toMillis();
+        if (delta == 0) {
+            return "";
+        }
+
+        return TimeUtils.printDuration(delta);
+    }
+
+    /**
+     * Gets the uptime in milliseconds
+     *
+     * @return the uptime in milliseconds
+     */
+    public static long getUptimeMillis(CamelContext context) {
+        return context.getUptime().toMillis();
+    }
+
+    /**
+     * Gets the date and time Camel was started up.
+     */
+    public static Date getStartDate(CamelContext context) {
+        EventClock<ContextEvents> contextClock = context.getClock();
+
+        final Clock clock = contextClock.get(ContextEvents.START);
+        if (clock == null) {
+            return null;
+        }
+
+        return clock.asDate();
+    }
+
 }
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
index bdeaa61cf73..8d629381fee 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
@@ -35,6 +35,18 @@ The following deprecated methods from the 
`AbstractCamelContext`, deprecated on
 Users of these methods should use the respective operations from the 
`ExtendedCamelContext` (accessed via `getCamelContextExtension()`),
 instead.
 
+The following deprecated methods from the `CamelContext`, deprecated on 4.4 as 
part of CAMEL-20225, were finally removed and/or modified:
+
+* `getUptime`: modified to return a regular `Duration` instance.
+* `getUptimeMillis`: removed.
+* `getStartDate` removed.
+
+Users of this method should proceed as following:
+
+* `getUptime`: use `ContextHelper.getUptime`.
+* `getUptimeMillis`: use `getUptime().toMillis()`.
+* `getStartDate`: use `ContextHelper.getStartDate`.
+
 === Rest DSL
 
 Camel has changed the default value for `inlineRoutes=false` to 
`inlineRoutes=true` in `restConfiguration`.

Reply via email to