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`.