CAMEL-9937: camel-catalog - Add api to validate time pattern

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6da2fd46
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6da2fd46
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6da2fd46

Branch: refs/heads/camel-2.17.x
Commit: 6da2fd46b492f35b3bef06a4b052ede041e67ce4
Parents: fead65a
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue May 3 11:22:15 2016 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue May 3 11:22:45 2016 +0200

----------------------------------------------------------------------
 .../org/apache/camel/catalog/CamelCatalog.java  |  8 ++++++++
 .../camel/catalog/DefaultCamelCatalog.java      |  5 +++++
 .../apache/camel/catalog/CamelCatalogTest.java  | 21 ++++++++++++++++++++
 3 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6da2fd46/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index 9a52446..4308d37 100644
--- a/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ b/platforms/catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -191,6 +191,14 @@ public interface CamelCatalog {
     Map<String, String> endpointProperties(String uri) throws 
URISyntaxException;
 
     /**
+     * Validates the pattern whether its a valid time pattern.
+     *
+     * @param pattern  the pattern such as 5000, 5s, 5sec, 4min, 4m30s, 1h, 
etc.
+     * @return <tt>true</tt> if valid, <tt>false</tt> if invalid
+     */
+    boolean validateTimePattern(String pattern);
+
+    /**
      * Parses and validates the endpoint uri and constructs a key/value 
properties of each option.
      *
      * @param uri  the endpoint uri

http://git-wip-us.apache.org/repos/asf/camel/blob/6da2fd46/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 4e99524..6163b05 100644
--- 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -736,6 +736,11 @@ public class DefaultCamelCatalog implements CamelCatalog {
     }
 
     @Override
+    public boolean validateTimePattern(String pattern) {
+        return validateInteger(pattern);
+    }
+
+    @Override
     public EndpointValidationResult validateEndpointProperties(String uri) {
         return validateEndpointProperties(uri, false);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/6da2fd46/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index 830d0bd..1da20e7 100644
--- 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -607,6 +607,27 @@ public class CamelCatalogTest {
     }
 
     @Test
+    public void validateTimePattern() throws Exception {
+        assertTrue(catalog.validateTimePattern("0"));
+        assertTrue(catalog.validateTimePattern("500"));
+        assertTrue(catalog.validateTimePattern("10000"));
+        assertTrue(catalog.validateTimePattern("5s"));
+        assertTrue(catalog.validateTimePattern("5sec"));
+        assertTrue(catalog.validateTimePattern("5secs"));
+        assertTrue(catalog.validateTimePattern("3m"));
+        assertTrue(catalog.validateTimePattern("3min"));
+        assertTrue(catalog.validateTimePattern("3minutes"));
+        assertTrue(catalog.validateTimePattern("5m15s"));
+        assertTrue(catalog.validateTimePattern("1h"));
+        assertTrue(catalog.validateTimePattern("1hour"));
+        assertTrue(catalog.validateTimePattern("2hours"));
+
+        assertFalse(catalog.validateTimePattern("bla"));
+        assertFalse(catalog.validateTimePattern("2year"));
+        assertFalse(catalog.validateTimePattern("60darn"));
+    }
+
+    @Test
     public void testEndpointComponentName() throws Exception {
         String name = catalog.endpointComponentName("jms:queue:foo");
         assertEquals("jms", name);

Reply via email to