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 10c559b507c1b33c0ac685230e65db1c3ac6471e
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Thu Apr 11 13:34:04 2024 +0200

    (chores) camel-core-catalog: extract independent code snippets from large 
code blocks
---
 .../camel/catalog/impl/AbstractCamelCatalog.java   | 93 ++++++++++++----------
 1 file changed, 49 insertions(+), 44 deletions(-)

diff --git 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index ee2e66b0b1d..170a17817aa 100644
--- 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -570,50 +570,7 @@ public abstract class AbstractCamelCatalog {
             }
         }
         // parse the syntax and find each token between each option
-        String[] tokens = SYNTAX_PATTERN.split(syntax);
-
-        // find the position where each option start/end
-        List<String> word2 = new ArrayList<>();
-        int prev = 0;
-        int prevPath = 0;
-
-        // special for activemq/jms where the enum for destinationType causes 
a token issue as it includes a colon
-        // for 'temp:queue' and 'temp:topic' values
-        if ("activemq".equals(scheme) || "jms".equals(scheme)) {
-            if (uriPath.startsWith("temp:")) {
-                prevPath = 5;
-            }
-        }
-
-        for (String token : tokens) {
-            if (token.isEmpty()) {
-                continue;
-            }
-
-            // special for some tokens where :// can be used also, eg 
http://foo
-            int idx = -1;
-            int len = 0;
-            if (":".equals(token)) {
-                idx = uriPath.indexOf("://", prevPath);
-                len = 3;
-            }
-            if (idx == -1) {
-                idx = uriPath.indexOf(token, prevPath);
-                len = token.length();
-            }
-
-            if (idx > 0) {
-                String option = uriPath.substring(prev, idx);
-                word2.add(option);
-                prev = idx + len;
-                prevPath = prev;
-            }
-        }
-        // special for last or if we did not add anyone
-        if (prev > 0 || word2.isEmpty()) {
-            String option = uriPath.substring(prev);
-            word2.add(option);
-        }
+        final List<String> word2 = findTokens(syntax, scheme, uriPath);
 
         boolean defaultValueAdded = false;
 
@@ -738,6 +695,54 @@ public abstract class AbstractCamelCatalog {
         return answer;
     }
 
+    private static List<String> findTokens(String syntax, String scheme, 
String uriPath) {
+        String[] tokens = SYNTAX_PATTERN.split(syntax);
+
+        // find the position where each option start/end
+        List<String> word2 = new ArrayList<>();
+        int prev = 0;
+        int prevPath = 0;
+
+        // special for activemq/jms where the enum for destinationType causes 
a token issue as it includes a colon
+        // for 'temp:queue' and 'temp:topic' values
+        if ("activemq".equals(scheme) || "jms".equals(scheme)) {
+            if (uriPath.startsWith("temp:")) {
+                prevPath = 5;
+            }
+        }
+
+        for (String token : tokens) {
+            if (token.isEmpty()) {
+                continue;
+            }
+
+            // special for some tokens where :// can be used also, eg 
http://foo
+            int idx = -1;
+            int len = 0;
+            if (":".equals(token)) {
+                idx = uriPath.indexOf("://", prevPath);
+                len = 3;
+            }
+            if (idx == -1) {
+                idx = uriPath.indexOf(token, prevPath);
+                len = token.length();
+            }
+
+            if (idx > 0) {
+                String option = uriPath.substring(prev, idx);
+                word2.add(option);
+                prev = idx + len;
+                prevPath = prev;
+            }
+        }
+        // special for last or if we did not add anyone
+        if (prev > 0 || word2.isEmpty()) {
+            String option = uriPath.substring(prev);
+            word2.add(option);
+        }
+        return word2;
+    }
+
     private Map<String, BaseOptionModel> extractApiProperties(ComponentModel 
model, String key, String key2) {
         Map<String, BaseOptionModel> answer = new LinkedHashMap<>();
         if (key != null) {

Reply via email to