You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2017/04/05 13:08:58 UTC

camel git commit: CAMEL-11112 Make sure streams are closed in cam...

Repository: camel
Updated Branches:
  refs/heads/master 037da91ea -> b1e7639f2


CAMEL-11112 Make sure streams are closed in cam...

...el-catalog

Using try-with-resources to make sure that `InputStream`s are closed,
also cleaned up the implementation a bit by refactoring common code,
replacing `while(true)` loops and removing unused imports.


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

Branch: refs/heads/master
Commit: b1e7639f228f3fd6877e43a6e6ec95a81e2fa4a1
Parents: 037da91
Author: Zoran Regvart <zr...@apache.org>
Authored: Wed Apr 5 13:29:40 2017 +0200
Committer: Zoran Regvart <zr...@apache.org>
Committed: Wed Apr 5 15:08:13 2017 +0200

----------------------------------------------------------------------
 .../camel/catalog/AbstractCamelCatalog.java     |   2 -
 .../org/apache/camel/catalog/CatalogHelper.java |  38 ++---
 .../camel/catalog/AbstractCamelCatalog.java     |   2 -
 .../catalog/CamelCatalogJSonSchemaResolver.java | 150 +++++++------------
 .../org/apache/camel/catalog/CatalogHelper.java |  38 ++---
 5 files changed, 75 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b1e7639f/camel-core/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java b/camel-core/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
index 50c5fa3..6c1e3d4 100644
--- a/camel-core/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
+++ b/camel-core/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
@@ -26,7 +26,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -34,7 +33,6 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 import static org.apache.camel.catalog.CatalogHelper.after;
 import static org.apache.camel.catalog.JSonSchemaHelper.getNames;

http://git-wip-us.apache.org/repos/asf/camel/blob/b1e7639f/camel-core/src/main/java/org/apache/camel/catalog/CatalogHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/catalog/CatalogHelper.java b/camel-core/src/main/java/org/apache/camel/catalog/CatalogHelper.java
index f7c0072..caba4a3 100644
--- a/camel-core/src/main/java/org/apache/camel/catalog/CatalogHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/catalog/CatalogHelper.java
@@ -37,20 +37,12 @@ public final class CatalogHelper {
      * Warning, don't use for crazy big streams :)
      */
     public static void loadLines(InputStream in, List<String> lines) throws IOException {
-        InputStreamReader isr = new InputStreamReader(in);
-        try {
-            BufferedReader reader = new LineNumberReader(isr);
-            while (true) {
-                String line = reader.readLine();
-                if (line != null) {
-                    lines.add(line);
-                } else {
-                    break;
-                }
+        try (final InputStreamReader isr = new InputStreamReader(in);
+            final BufferedReader reader = new LineNumberReader(isr)) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                lines.add(line);
             }
-        } finally {
-            isr.close();
-            in.close();
         }
     }
 
@@ -64,22 +56,14 @@ public final class CatalogHelper {
      */
     public static String loadText(InputStream in) throws IOException {
         StringBuilder builder = new StringBuilder();
-        InputStreamReader isr = new InputStreamReader(in);
-        try {
-            BufferedReader reader = new LineNumberReader(isr);
-            while (true) {
-                String line = reader.readLine();
-                if (line != null) {
-                    builder.append(line);
-                    builder.append("\n");
-                } else {
-                    break;
-                }
+        try (final InputStreamReader isr = new InputStreamReader(in);
+            final BufferedReader reader = new LineNumberReader(isr)) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                builder.append(line);
+                builder.append("\n");
             }
             return builder.toString();
-        } finally {
-            isr.close();
-            in.close();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/b1e7639f/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
index 50c5fa3..6c1e3d4 100644
--- a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
+++ b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/AbstractCamelCatalog.java
@@ -26,7 +26,6 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -34,7 +33,6 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 import static org.apache.camel.catalog.CatalogHelper.after;
 import static org.apache.camel.catalog.JSonSchemaHelper.getNames;

http://git-wip-us.apache.org/repos/asf/camel/blob/b1e7639f/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
index 2823fe3..f552d0e 100644
--- a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
+++ b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalogJSonSchemaResolver.java
@@ -18,7 +18,6 @@ package org.apache.camel.catalog;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -48,78 +47,42 @@ public class CamelCatalogJSonSchemaResolver implements JSonSchemaResolver {
 
     @Override
     public String getComponentJSonSchema(String name) {
-        String file = camelCatalog.getRuntimeProvider().getComponentJSonSchemaDirectory() + "/" + name + ".json";
-
-        String answer = null;
-        InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file);
-        if (is != null) {
-            try {
-                answer = CatalogHelper.loadText(is);
-            } catch (IOException e) {
-                // ignore
-            }
+        final String file = camelCatalog.getRuntimeProvider().getComponentJSonSchemaDirectory() + "/" + name + ".json";
+
+        final String fromVersionManager = loadResourceFromVersionManager(file);
+        if (fromVersionManager != null) {
+            return fromVersionManager;
         }
-        if (answer == null) {
-            // its maybe a third party so try to see if we have the json schema already
-            answer = extraComponentsJSonSchema.get(name);
-            if (answer == null) {
-                // or if we can load it from the classpath
-                String className = extraComponents.get(name);
-                if (className != null) {
-                    String packageName = className.substring(0, className.lastIndexOf('.'));
-                    packageName = packageName.replace('.', '/');
-                    String path = packageName + "/" + name + ".json";
-                    is = camelCatalog.getVersionManager().getResourceAsStream(path);
-                    if (is != null) {
-                        try {
-                            answer = CatalogHelper.loadText(is);
-                        } catch (IOException e) {
-                            // ignore
-                        }
-                    }
-                }
-            }
+
+        // its maybe a third party so try to see if we have the json schema already
+        final String answer = extraComponentsJSonSchema.get(name);
+        if (answer != null) {
+            return answer;
         }
 
-        return answer;
+        // or if we can load it from the classpath
+        final String className = extraComponents.get(name);
+        return loadFromClasspath(className, name);
     }
 
     @Override
     public String getDataFormatJSonSchema(String name) {
-        String file = camelCatalog.getRuntimeProvider().getDataFormatJSonSchemaDirectory() + "/" + name + ".json";
-
-        String answer = null;
-        InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file);
-        if (is != null) {
-            try {
-                answer = CatalogHelper.loadText(is);
-            } catch (IOException e) {
-                // ignore
-            }
+        final String file = camelCatalog.getRuntimeProvider().getDataFormatJSonSchemaDirectory() + "/" + name + ".json";
+
+        final String fromVersionManager = loadResourceFromVersionManager(file);
+        if (fromVersionManager != null) {
+            return fromVersionManager;
         }
-        if (answer == null) {
-            // its maybe a third party so try to see if we have the json schema already
-            answer = extraDataFormatsJSonSchema.get(name);
-            if (answer == null) {
-                // or if we can load it from the classpath
-                String className = extraDataFormats.get(name);
-                if (className != null) {
-                    String packageName = className.substring(0, className.lastIndexOf('.'));
-                    packageName = packageName.replace('.', '/');
-                    String path = packageName + "/" + name + ".json";
-                    is = camelCatalog.getVersionManager().getResourceAsStream(path);
-                    if (is != null) {
-                        try {
-                            answer = CatalogHelper.loadText(is);
-                        } catch (IOException e) {
-                            // ignore
-                        }
-                    }
-                }
-            }
+
+        // its maybe a third party so try to see if we have the json schema already
+        final String schema = extraDataFormatsJSonSchema.get(name);
+        if (schema != null) {
+            return schema;
         }
 
-        return answer;
+        // or if we can load it from the classpath
+        final String className = extraDataFormats.get(name);
+        return loadFromClasspath(className, name);
     }
 
     @Override
@@ -129,53 +92,46 @@ public class CamelCatalogJSonSchemaResolver implements JSonSchemaResolver {
             name = "bean";
         }
 
-        String file = camelCatalog.getRuntimeProvider().getLanguageJSonSchemaDirectory() + "/" + name + ".json";
+        final String file = camelCatalog.getRuntimeProvider().getLanguageJSonSchemaDirectory() + "/" + name + ".json";
 
-        String answer = null;
-        InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file);
-        if (is != null) {
-            try {
-                answer = CatalogHelper.loadText(is);
-            } catch (IOException e) {
-                // ignore
-            }
-        }
+        return loadResourceFromVersionManager(file);
+    }
 
-        return answer;
+    @Override
+    public String getModelJSonSchema(String name) {
+        final String file = MODEL_DIR + "/" + name + ".json";
+
+        return loadResourceFromVersionManager(file);
     }
 
     @Override
     public String getOtherJSonSchema(String name) {
-        String file = camelCatalog.getRuntimeProvider().getOtherJSonSchemaDirectory() + "/" + name + ".json";
-
-        String answer = null;
-        InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file);
-        if (is != null) {
-            try {
-                answer = CatalogHelper.loadText(is);
-            } catch (IOException e) {
-                // ignore
-            }
-        }
+        final String file = camelCatalog.getRuntimeProvider().getOtherJSonSchemaDirectory() + "/" + name + ".json";
 
-        return answer;
+        return loadResourceFromVersionManager(file);
     }
 
-    @Override
-    public String getModelJSonSchema(String name) {
-        String file = MODEL_DIR + "/" + name + ".json";
+    String loadFromClasspath(final String className, final String fileName) {
+        if (className != null) {
+            String packageName = className.substring(0, className.lastIndexOf('.'));
+            packageName = packageName.replace('.', '/');
+            final String path = packageName + "/" + fileName + ".json";
 
-        String answer = null;
+            return loadResourceFromVersionManager(path);
+        }
+
+        return null;
+    }
 
-        InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file);
-        if (is != null) {
-            try {
-                answer = CatalogHelper.loadText(is);
-            } catch (IOException e) {
-                // ignore
+    String loadResourceFromVersionManager(final String file) {
+        try (final InputStream is = camelCatalog.getVersionManager().getResourceAsStream(file)) {
+            if (is != null) {
+                return CatalogHelper.loadText(is);
             }
+        } catch (IOException e) {
+            // ignore
         }
 
-        return answer;
+        return null;
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/b1e7639f/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CatalogHelper.java
----------------------------------------------------------------------
diff --git a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CatalogHelper.java b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CatalogHelper.java
index f7c0072..caba4a3 100644
--- a/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CatalogHelper.java
+++ b/platforms/camel-catalog/src/main/java/org/apache/camel/catalog/CatalogHelper.java
@@ -37,20 +37,12 @@ public final class CatalogHelper {
      * Warning, don't use for crazy big streams :)
      */
     public static void loadLines(InputStream in, List<String> lines) throws IOException {
-        InputStreamReader isr = new InputStreamReader(in);
-        try {
-            BufferedReader reader = new LineNumberReader(isr);
-            while (true) {
-                String line = reader.readLine();
-                if (line != null) {
-                    lines.add(line);
-                } else {
-                    break;
-                }
+        try (final InputStreamReader isr = new InputStreamReader(in);
+            final BufferedReader reader = new LineNumberReader(isr)) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                lines.add(line);
             }
-        } finally {
-            isr.close();
-            in.close();
         }
     }
 
@@ -64,22 +56,14 @@ public final class CatalogHelper {
      */
     public static String loadText(InputStream in) throws IOException {
         StringBuilder builder = new StringBuilder();
-        InputStreamReader isr = new InputStreamReader(in);
-        try {
-            BufferedReader reader = new LineNumberReader(isr);
-            while (true) {
-                String line = reader.readLine();
-                if (line != null) {
-                    builder.append(line);
-                    builder.append("\n");
-                } else {
-                    break;
-                }
+        try (final InputStreamReader isr = new InputStreamReader(in);
+            final BufferedReader reader = new LineNumberReader(isr)) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                builder.append(line);
+                builder.append("\n");
             }
             return builder.toString();
-        } finally {
-            isr.close();
-            in.close();
         }
     }