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 2015/12/28 14:05:11 UTC

[4/6] camel git commit: Allow to use CamelCatalog in cache mode

Allow to use CamelCatalog in cache mode


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

Branch: refs/heads/master
Commit: 1741937b754e1750e12033b55f4e5f21db916f96
Parents: 3a4d17e
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Dec 28 13:52:03 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Dec 28 13:57:22 2015 +0100

----------------------------------------------------------------------
 .../camel/catalog/DefaultCamelCatalog.java      | 47 ++++++++++++--------
 1 file changed, 29 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1741937b/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 bff2ca9..e1a1622 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
@@ -1192,27 +1192,38 @@ public class DefaultCamelCatalog implements CamelCatalog {
 
     @Override
     public String listComponentsAsJson() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("[");
-        List<String> names = findComponentNames();
-        for (int i = 0; i < names.size(); i++) {
-            String scheme = names.get(i);
-            String json = componentJSonSchema(scheme);
-            // skip first line
-            json = CatalogHelper.between(json, "\"component\": {", "\"componentProperties\": {");
-            json = json != null ? json.trim() : "";
-            // skip last comma if not the last
-            if (i == names.size() - 1) {
-                json = json.substring(0, json.length() - 1);
+        String answer = null;
+        if (caching) {
+            answer = (String) cache.get("listComponentsAsJson");
+        }
+
+        if (answer == null) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("[");
+            List<String> names = findComponentNames();
+            for (int i = 0; i < names.size(); i++) {
+                String scheme = names.get(i);
+                String json = componentJSonSchema(scheme);
+                // skip first line
+                json = CatalogHelper.between(json, "\"component\": {", "\"componentProperties\": {");
+                json = json != null ? json.trim() : "";
+                // skip last comma if not the last
+                if (i == names.size() - 1) {
+                    json = json.substring(0, json.length() - 1);
+                }
+                sb.append("\n");
+                sb.append("  {\n");
+                sb.append("    ");
+                sb.append(json);
+            }
+            sb.append("\n]");
+            answer = sb.toString();
+            if (caching) {
+                cache.put("listComponentsAsJson", answer);
             }
-            sb.append("\n");
-            sb.append("  {\n");
-            sb.append("    ");
-            sb.append(json);
         }
 
-        sb.append("\n]");
-        return sb.toString();
+        return answer;
     }
 
     @Override