You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/03/15 11:21:25 UTC
[camel] 01/03: CAMEL-14575: camel-core - TypeConverter from String
to Long - drop time pattern
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 0dfe11736d0193f70d5437b473473606ee3193a8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 15 11:02:36 2020 +0100
CAMEL-14575: camel-core - TypeConverter from String to Long - drop time pattern
---
.../camel-timer/src/main/docs/timer-component.adoc | 9 -
.../camel/component/timer/TimerEndpoint.java | 10 +-
.../converter/TimePatternConverterLoader.java | 36 ---
.../camel/converter/TimePatternConverter.java | 38 ---
.../camel/converter/TimePatternConverterTest.java | 263 ---------------------
.../camel/support/ScheduledPollEndpoint.java | 10 +-
.../modules/ROOT/pages/timer-component.adoc | 9 -
docs/user-manual-nav.adoc.template | 1 -
docs/user-manual/modules/ROOT/nav.adoc | 1 -
docs/user-manual/modules/ROOT/pages/faq.adoc | 1 -
...ify-time-period-in-a-human-friendly-syntax.adoc | 55 -----
11 files changed, 4 insertions(+), 429 deletions(-)
diff --git a/components/camel-timer/src/main/docs/timer-component.adoc b/components/camel-timer/src/main/docs/timer-component.adoc
index 8adb7f7..221019e 100644
--- a/components/camel-timer/src/main/docs/timer-component.adoc
+++ b/components/camel-timer/src/main/docs/timer-component.adoc
@@ -35,15 +35,6 @@ See also the xref:quartz-component.adoc[Quartz] component that supports much mor
advanced scheduling.
====
-[TIP]
-====
-*Specify time in human friendly format*
-
-You can specify the time in
-xref:manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
-friendly syntax].
-====
-
== Options
diff --git a/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java b/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index e1d9490..72a0685 100644
--- a/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ b/components/camel-timer/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -43,11 +43,9 @@ import org.apache.camel.support.DefaultEndpoint;
public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
@UriPath @Metadata(required = true)
private String timerName;
- @UriParam(defaultValue = "1000", description = "If greater than 0, generate periodic events every period milliseconds."
- + " You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).")
+ @UriParam(defaultValue = "1000", description = "If greater than 0, generate periodic events every period milliseconds.")
private long period = 1000;
- @UriParam(defaultValue = "1000", description = "Miliseconds before first event is triggered."
- + " You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).")
+ @UriParam(defaultValue = "1000", description = "Milliseconds before first event is triggered.")
private long delay = 1000;
@UriParam(defaultValue = "0")
private long repeatCount;
@@ -151,8 +149,6 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
* The number of milliseconds to wait before the first event is generated. Should not be used in conjunction with the time option.
* <p/>
* The default value is 1000.
- * You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).
- * @see <a href="http://camel.apache.org/how-do-i-specify-time-period-in-a-human-friendly-syntax.html">human friendly syntax</a>
*/
@ManagedAttribute(description = "Timer Delay")
public void setDelay(long delay) {
@@ -181,8 +177,6 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS
* If greater than 0, generate periodic events every period milliseconds.
* <p/>
* The default value is 1000.
- * You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).
- * @see <a href="http://camel.apache.org/how-do-i-specify-time-period-in-a-human-friendly-syntax.html">human friendly syntax</a>
*/
@ManagedAttribute(description = "Timer Period")
public void setPeriod(long period) {
diff --git a/core/camel-base/src/generated/java/org/apache/camel/converter/TimePatternConverterLoader.java b/core/camel-base/src/generated/java/org/apache/camel/converter/TimePatternConverterLoader.java
deleted file mode 100644
index 4f26a00..0000000
--- a/core/camel-base/src/generated/java/org/apache/camel/converter/TimePatternConverterLoader.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.converter;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.TypeConversionException;
-import org.apache.camel.TypeConverterLoaderException;
-import org.apache.camel.spi.TypeConverterLoader;
-import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.support.SimpleTypeConverter;
-import org.apache.camel.support.TypeConverterSupport;
-import org.apache.camel.util.DoubleMap;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public final class TimePatternConverterLoader implements TypeConverterLoader {
-
- public TimePatternConverterLoader() {
- }
-
- @Override
- public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException {
- registerConverters(registry);
- }
-
- private void registerConverters(TypeConverterRegistry registry) {
- addTypeConverter(registry, long.class, java.lang.String.class, false,
- (type, exchange, value) -> org.apache.camel.converter.TimePatternConverter.toMilliSeconds((java.lang.String) value));
- }
-
- private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) {
- registry.addTypeConverter(toType, fromType, new SimpleTypeConverter(allowNull, method));
- }
-
-}
diff --git a/core/camel-base/src/main/java/org/apache/camel/converter/TimePatternConverter.java b/core/camel-base/src/main/java/org/apache/camel/converter/TimePatternConverter.java
deleted file mode 100644
index c809fed..0000000
--- a/core/camel-base/src/main/java/org/apache/camel/converter/TimePatternConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.converter;
-
-import org.apache.camel.Converter;
-import org.apache.camel.util.TimeUtils;
-
-/**
- * Converter from String syntax to milli seconds.
- */
-@Converter(generateLoader = true)
-public final class TimePatternConverter {
-
- /**
- * Utility classes should not have a public constructor.
- */
- private TimePatternConverter() {
- }
-
- @Converter
- public static long toMilliSeconds(String source) throws IllegalArgumentException {
- return TimeUtils.toMilliSeconds(source);
- }
-}
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/TimePatternConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/TimePatternConverterTest.java
deleted file mode 100644
index 9029bfb..0000000
--- a/core/camel-core/src/test/java/org/apache/camel/converter/TimePatternConverterTest.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.converter;
-
-import org.apache.camel.ContextTestSupport;
-import org.junit.Test;
-
-import static org.hamcrest.core.Is.is;
-
-public class TimePatternConverterTest extends ContextTestSupport {
-
- @Test
- public void testMillisecondsTimePattern() throws Exception {
- String source = "444";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(444, milliseconds);
- }
-
- @Test
- public void testMilliseconds2TimePattern() throws Exception {
- String source = "-72";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(-72, milliseconds);
- }
-
- @Test
- public void testSTimePattern() throws Exception {
- String source = "35s";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(35000, milliseconds);
- }
-
- @Test
- public void testSecTimePattern() throws Exception {
- String source = "35sec";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(35000, milliseconds);
- }
-
- @Test
- public void testSecsTimePattern() throws Exception {
- String source = "35secs";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(35000, milliseconds);
- }
-
- @Test
- public void testSecondTimePattern() throws Exception {
- String source = "35second";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(35000, milliseconds);
- }
-
- @Test
- public void testSecondsTimePattern() throws Exception {
- String source = "35seconds";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(35000, milliseconds);
- }
-
- @Test
- public void testConsiderLegalSTimePattern() throws Exception {
- String source = "89s";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(89000, milliseconds);
- }
-
- @Test
- public void testMTimePattern() throws Exception {
- String source = "28m";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(1680000, milliseconds);
- }
-
- @Test
- public void testMinTimePattern() throws Exception {
- String source = "28min";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(1680000, milliseconds);
- }
-
- @Test
- public void testMinuteTimePattern() throws Exception {
- String source = "28MINUTE";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(1680000, milliseconds);
- }
-
- @Test
- public void testMinutesTimePattern() throws Exception {
- String source = "28Minutes";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(1680000, milliseconds);
- }
-
- @Test
- public void testConsiderLegalMTimePattern() throws Exception {
- String source = "89m";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(5340000, milliseconds);
- }
-
- @Test
- public void testHTimePattern() throws Exception {
- String source = "28h";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(100800000, milliseconds);
- }
-
- @Test
- public void testHourTimePattern() throws Exception {
- String source = "28Hour";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(100800000, milliseconds);
- }
-
- @Test
- public void testHoursTimePattern() throws Exception {
- String source = "28HOURS";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(100800000, milliseconds);
- }
-
- @Test
- public void testHMSTimePattern() throws Exception {
- String source = "1h3m5s";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(3785000, milliseconds);
- }
-
- @Test
- public void testHMSTimePattern2() throws Exception {
- String source = "1hours30minutes1second";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(5401000, milliseconds);
- }
-
- @Test
- public void testHMSTimePattern3() throws Exception {
- String source = "1HOUR3m5s";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(3785000, milliseconds);
- }
-
- @Test
- public void testMSTimePattern() throws Exception {
- String source = "30m55s";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(1855000, milliseconds);
- }
-
- @Test
- public void testHMTimePattern() throws Exception {
- String source = "1h30m";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(5400000, milliseconds);
- }
-
- @Test
- public void testSTimePattern2() throws Exception {
- String source = "15sec";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(15000, milliseconds);
- }
-
- @Test
- public void testMTimePattern2() throws Exception {
- String source = "5min";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(300000, milliseconds);
- }
-
- @Test
- public void testMTimePattern3() throws Exception {
- String source = "5MIN";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(300000, milliseconds);
- }
-
- @Test
- public void testMSTimePattern2() throws Exception {
- String source = "4min2sec";
- long milliseconds = TimePatternConverter.toMilliSeconds(source);
- assertEquals(242000, milliseconds);
- }
-
- // Negative Tests
- @Test
- public void testIllegalHMSTimePattern() {
- String source = "36h88m5s";
- checkForIllegalArgument(source, "Minutes should contain a valid value between 0 and 59: " + source);
- }
-
- @Test
- public void testHoursTwice() {
- String source = "36h12hours";
- String expectedMessage = "Hours should not be specified more then once: " + source;
- checkForIllegalArgument(source, expectedMessage);
- }
-
- @Test
- public void testMinutesTwice() {
- String source = "36minute12min";
- String expectedMessage = "Minutes should not be specified more then once: " + source;
- checkForIllegalArgument(source, expectedMessage);
- }
-
- @Test
- public void testSecondsTwice() {
- String source = "36sec12second";
- String expectedMessage = "Seconds should not be specified more then once: " + source;
- checkForIllegalArgument(source, expectedMessage);
- }
-
- @Test
- public void testIllegalMSTimePattern() {
- String source = "55m75s";
- checkForIllegalArgument(source, "Seconds should contain a valid value between 0 and 59: " + source);
- }
-
- @Test
- public void testIllegalHMTimePattern() throws Exception {
- String source = "1h89s";
- checkForIllegalArgument(source, "Seconds should contain a valid value between 0 and 59: " + source);
- }
-
- @Test
- public void testIllegalCharacters() throws Exception {
- String source = "5ssegegegegqergerg";
- checkForIllegalArgument(source, "Illegal characters: " + source);
- }
-
- @Test
- public void testSsCharacters() throws Exception {
- String source = "5ss";
- checkForIllegalArgument(source, "Illegal characters: " + source);
- }
-
- private void checkForIllegalArgument(String source, String expectedMessage) {
- try {
- TimePatternConverter.toMilliSeconds(source);
- fail("Should throw IllegalArgumentException");
- } catch (Exception e) {
- assertIsInstanceOf(IllegalArgumentException.class, e);
- assertThat(e.getMessage(), is(expectedMessage));
- }
- }
-
-}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollEndpoint.java b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollEndpoint.java
index 21a5164..d85356e 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollEndpoint.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollEndpoint.java
@@ -43,12 +43,10 @@ public abstract class ScheduledPollEndpoint extends DefaultEndpoint {
description = "Whether the scheduler should be auto started.")
private boolean startScheduler = true;
@UriParam(defaultValue = "1000", label = "consumer,scheduler",
- description = "Milliseconds before the first poll starts."
- + " You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).")
+ description = "Milliseconds before the first poll starts.")
private long initialDelay = 1000;
@UriParam(defaultValue = "500", label = "consumer,scheduler",
- description = "Milliseconds before the next poll."
- + " You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).")
+ description = "Milliseconds before the next poll.")
private long delay = 500;
@UriParam(defaultValue = "MILLISECONDS", label = "consumer,scheduler",
description = "Time unit for initialDelay and delay options.")
@@ -205,8 +203,6 @@ public abstract class ScheduledPollEndpoint extends DefaultEndpoint {
* Milliseconds before the first poll starts.
* <p/>
* The default value is 1000.
- * You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).
- * @see <a href="http://camel.apache.org/how-do-i-specify-time-period-in-a-human-friendly-syntax.html">human friendly syntax</a>
*/
public void setInitialDelay(long initialDelay) {
this.initialDelay = initialDelay;
@@ -220,8 +216,6 @@ public abstract class ScheduledPollEndpoint extends DefaultEndpoint {
* Milliseconds before the next poll.
* <p/>
* The default value is 500.
- * You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour).
- * @see <a href="http://camel.apache.org/how-do-i-specify-time-period-in-a-human-friendly-syntax.html">human friendly syntax</a>
*/
public void setDelay(long delay) {
this.delay = delay;
diff --git a/docs/components/modules/ROOT/pages/timer-component.adoc b/docs/components/modules/ROOT/pages/timer-component.adoc
index 0460a10..46dbf21 100644
--- a/docs/components/modules/ROOT/pages/timer-component.adoc
+++ b/docs/components/modules/ROOT/pages/timer-component.adoc
@@ -36,15 +36,6 @@ See also the xref:quartz-component.adoc[Quartz] component that supports much mor
advanced scheduling.
====
-[TIP]
-====
-*Specify time in human friendly format*
-
-You can specify the time in
-xref:manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
-friendly syntax].
-====
-
== Options
diff --git a/docs/user-manual-nav.adoc.template b/docs/user-manual-nav.adoc.template
index 7a697b0..d7d41ee 100644
--- a/docs/user-manual-nav.adoc.template
+++ b/docs/user-manual-nav.adoc.template
@@ -114,7 +114,6 @@
** xref:faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc[How do I reuse the ContextTestSupport class in my unit tests?]
** xref:faq/how-do-i-run-activemq-and-camel-in-jboss.adoc[How do I run ActiveMQ and Camel in JBoss?]
** xref:faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[How do I set the max chars when debug logging messages in Camel?]
- ** xref:faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[How do I specify time period in a human friendly syntax?]
** xref:faq/how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
** xref:faq/how-do-i-use-camel-inside-servicemix.adoc[How do I use Camel inside ServiceMix?]
** xref:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do I use Spring Property Placeholder with Camel XML?]
diff --git a/docs/user-manual/modules/ROOT/nav.adoc b/docs/user-manual/modules/ROOT/nav.adoc
index 174090d..cee82b6 100644
--- a/docs/user-manual/modules/ROOT/nav.adoc
+++ b/docs/user-manual/modules/ROOT/nav.adoc
@@ -183,7 +183,6 @@
** xref:faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc[How do I reuse the ContextTestSupport class in my unit tests?]
** xref:faq/how-do-i-run-activemq-and-camel-in-jboss.adoc[How do I run ActiveMQ and Camel in JBoss?]
** xref:faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[How do I set the max chars when debug logging messages in Camel?]
- ** xref:faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[How do I specify time period in a human friendly syntax?]
** xref:faq/how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
** xref:faq/how-do-i-use-camel-inside-servicemix.adoc[How do I use Camel inside ServiceMix?]
** xref:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do I use Spring Property Placeholder with Camel XML?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq.adoc b/docs/user-manual/modules/ROOT/pages/faq.adoc
index b56735c..004e73b 100644
--- a/docs/user-manual/modules/ROOT/pages/faq.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq.adoc
@@ -87,7 +87,6 @@ Questions on using Apache Camel
* xref:faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc[How do I reuse the ContextTestSupport class in my unit tests?]
* xref:faq/how-do-i-run-activemq-and-camel-in-jboss.adoc[How do I run ActiveMQ and Camel in JBoss?]
* xref:faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[How do I set the max chars when debug logging messages in Camel?]
-* xref:faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[How do I specify time period in a human friendly syntax?]
* xref:faq/how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
* xref:faq/how-do-i-use-camel-inside-servicemix.adoc[How do I use Camel inside ServiceMix?]
* xref:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do I use Spring Property Placeholder with Camel XML?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc
deleted file mode 100644
index 44f7afa..0000000
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc
+++ /dev/null
@@ -1,55 +0,0 @@
-[[HowdoIspecifytimeperiodinahumanfriendlysyntax-HowdoIspecifytimeperiodinahumanfriendlysyntax]]
-= How do I specify time period in a human friendly syntax?
-
-*Since Camel 2.3*
-
-Some of the Camel xref:component.adoc[components] offers options to
-specify a time period, which must be entered in milli second as unit.
-This may be unfriendly to read as a human when the value is large such
-as 45min = 2700000 millis.
-
-So in Camel 2.3 you can now configure any endpoint uri parameter using a
-String syntax, which at runtime will get converted to millis (`long`
-type).
-
-You can use the following short syntax, which is most common to use:
-
-[width="100%",cols="50%,50%",options="header",]
-|============
-|Syntax |Unit
-|h |hour
-|m |minute
-|s |second
-|============
-
-So for example the xref:components::timer-component.adoc[Timer] endpoint can be configured as
-follows:
-
-[source,java]
-----
-from("timer:foo?period=45m").to("log:foo");
-----
-
-You can mix and match the units so you can do this as well:
-
-[source,java]
-----
-from("timer:foo?period=1h15m").to("log:foo");
-from("timer:bar?period=2h30s").to("log:bar");
-from("timer:bar?period=3h45m58s").to("log:bar");
-----
-
-However you can also use long syntax:
-
-[width="100%",cols="50%,50%",options="header",]
-|=========================
-|Syntax |Unit
-|hour or hours |hour
-|minute or minutes |minute
-|second or seconds |second
-|=========================
-
-[source,java]
-----
-from("timer:foo?period=45minutes").to("log:foo");
-----