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 2017/01/19 11:34:44 UTC

camel git commit: CAMEL-10721: Refactored a bit

Repository: camel
Updated Branches:
  refs/heads/master db8740ce9 -> 065561d24


CAMEL-10721: Refactored a bit


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

Branch: refs/heads/master
Commit: 065561d24d6f0b06afc46fc042825574045fa5d2
Parents: db8740c
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jan 19 12:21:47 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jan 19 12:34:33 2017 +0100

----------------------------------------------------------------------
 .../maven/connector/CollectionStringBuffer.java | 57 ------------
 .../camel/maven/connector/ConnectorMojo.java    | 94 ++++----------------
 .../camel/maven/connector/FileHelper.java       | 44 +++++++++
 .../apache/camel/maven/connector/GitHelper.java |  6 ++
 .../camel/maven/connector/JSonSchemaHelper.java |  3 +
 .../camel/maven/connector/StringHelper.java     | 61 +++++++++++++
 6 files changed, 130 insertions(+), 135 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/CollectionStringBuffer.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/CollectionStringBuffer.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/CollectionStringBuffer.java
deleted file mode 100644
index bd11654..0000000
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/CollectionStringBuffer.java
+++ /dev/null
@@ -1,57 +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.maven.connector;
-
-public class CollectionStringBuffer {
-    private final StringBuilder buffer = new StringBuilder();
-    private String separator;
-    private boolean first = true;
-
-    public CollectionStringBuffer() {
-        this(", ");
-    }
-
-    public CollectionStringBuffer(String separator) {
-        this.separator = separator;
-    }
-
-    @Override
-    public String toString() {
-        return buffer.toString();
-    }
-
-    public void append(Object value) {
-        if (first) {
-            first = false;
-        } else {
-            buffer.append(separator);
-        }
-        buffer.append(value);
-    }
-
-    public String getSeparator() {
-        return separator;
-    }
-
-    public void setSeparator(String separator) {
-        this.separator = separator;
-    }
-
-    public boolean isEmpty() {
-        return first;
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
index 0a4637a..208c4e5 100644
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
@@ -19,16 +19,13 @@ package org.apache.camel.maven.connector;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -63,7 +60,8 @@ public class ConnectorMojo extends AbstractJarMojo {
 
     @Override
     protected String getClassifier() {
-        return "camel-connector";
+        // no classifier
+        return null;
     }
 
     @Override
@@ -157,6 +155,12 @@ public class ConnectorMojo extends AbstractJarMojo {
                     FileOutputStream fos = new FileOutputStream(out, false);
                     fos.write(newJson.getBytes());
                     fos.close();
+
+                    // also write the file in the root folder so its easier to find that for tooling
+                    out = new File(classesDirectory,"camel-connector-schema.json");
+                    fos = new FileOutputStream(out, false);
+                    fos.write(newJson.getBytes());
+                    fos.close();
                 }
 
                 // build json schema for component that only has the selectable options
@@ -171,7 +175,7 @@ public class ConnectorMojo extends AbstractJarMojo {
     private String extractJavaType(String scheme) throws Exception {
         File file = new File(classesDirectory, "META-INF/services/org/apache/camel/component/" + scheme);
         if (file.exists()) {
-            List<String> lines = loadFile(file);
+            List<String> lines = FileHelper.loadFile(file);
             String fqn = extractClass(lines);
             return fqn;
         }
@@ -228,7 +232,6 @@ public class ConnectorMojo extends AbstractJarMojo {
             String key = row.get("name");
             row.remove("name");
 
-            // TODO: if no options should we include all by default instead?
             if (options == null || !options.contains(key)) {
                 continue;
             }
@@ -265,7 +268,7 @@ public class ConnectorMojo extends AbstractJarMojo {
         String baseScheme = (String) dto.get("baseScheme");
         String source = (String) dto.get("source");
         String title = (String) dto.get("name");
-        String scheme = camelCaseToDash(title);
+        String scheme = StringHelper.camelCaseToDash(title);
         String baseSyntax = getOption(rows, "syntax");
         String syntax = baseSyntax.replaceFirst(baseScheme, scheme);
 
@@ -274,11 +277,7 @@ public class ConnectorMojo extends AbstractJarMojo {
         String label = null;
         List<String> labels = (List<String>) dto.get("labels");
         if (labels != null) {
-            CollectionStringBuffer csb = new CollectionStringBuffer(",");
-            for (String s : labels) {
-                csb.append(s);
-            }
-            label = csb.toString();
+            label = labels.stream().collect(Collectors.joining(","));
         }
         String async = getOption(rows, "async");
         String producerOnly = "To".equals(source) ? "true" : null;
@@ -292,10 +291,10 @@ public class ConnectorMojo extends AbstractJarMojo {
         StringBuilder sb = new StringBuilder();
         sb.append("  \"component\": {\n");
         if (gitUrl != null) {
-            sb.append("    \"girUrl\": \"" + nullSafe(gitUrl) + "\",\n");
+            sb.append("    \"girUrl\": \"" + StringHelper.nullSafe(gitUrl) + "\",\n");
         }
         sb.append("    \"kind\": \"component\",\n");
-        sb.append("    \"baseScheme\": \"" + nullSafe(baseScheme) + "\",\n");
+        sb.append("    \"baseScheme\": \"" + StringHelper.nullSafe(baseScheme) + "\",\n");
         sb.append("    \"scheme\": \"" + scheme + "\",\n");
         sb.append("    \"syntax\": \"" + syntax + "\",\n");
         sb.append("    \"title\": \"" + title + "\",\n");
@@ -326,10 +325,6 @@ public class ConnectorMojo extends AbstractJarMojo {
         return sb.toString();
     }
 
-    private static String nullSafe(String text) {
-        return text != null ? text : "";
-    }
-
     /**
      * Finds and embeds the Camel component JSon schema file
      */
@@ -357,7 +352,7 @@ public class ConnectorMojo extends AbstractJarMojo {
 
                             InputStream is = child.getResourceAsStream("META-INF/services/org/apache/camel/component/" + scheme);
                             if (is != null) {
-                                List<String> lines = loadFile(is);
+                                List<String> lines = FileHelper.loadFile(is);
                                 String fqn = extractClass(lines);
                                 is.close();
 
@@ -367,7 +362,7 @@ public class ConnectorMojo extends AbstractJarMojo {
 
                                 is = child.getResourceAsStream(name);
                                 if (is != null) {
-                                    List<String> schema = loadFile(is);
+                                    List<String> schema = FileHelper.loadFile(is);
                                     is.close();
 
                                     // write schema to file
@@ -422,61 +417,4 @@ public class ConnectorMojo extends AbstractJarMojo {
         return (String) map.get("baseVersion");
     }
 
-    private List<String> loadFile(File file) throws Exception {
-        List<String> lines = new ArrayList<>();
-        LineNumberReader reader = new LineNumberReader(new FileReader(file));
-
-        String line;
-        do {
-            line = reader.readLine();
-            if (line != null) {
-                lines.add(line);
-            }
-        } while (line != null);
-        reader.close();
-
-        return lines;
-    }
-
-    private List<String> loadFile(InputStream fis) throws Exception {
-        List<String> lines = new ArrayList<>();
-        LineNumberReader reader = new LineNumberReader(new InputStreamReader(fis));
-
-        String line;
-        do {
-            line = reader.readLine();
-            if (line != null) {
-                lines.add(line);
-            }
-        } while (line != null);
-        reader.close();
-
-        return lines;
-    }
-
-    public static String camelCaseToDash(String value) {
-        StringBuilder sb = new StringBuilder(value.length());
-        boolean dash = false;
-
-        for (char c : value.toCharArray()) {
-            // skip dash in start
-            if (sb.length() > 0 & Character.isUpperCase(c)) {
-                dash = true;
-            }
-            if (dash) {
-                sb.append('-');
-                sb.append(Character.toLowerCase(c));
-            } else {
-                // lower case first
-                if (sb.length() == 0) {
-                    sb.append(Character.toLowerCase(c));
-                } else {
-                    sb.append(c);
-                }
-            }
-            dash = false;
-        }
-        return sb.toString();
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/FileHelper.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/FileHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/FileHelper.java
index 30f187a..a7c7502 100644
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/FileHelper.java
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/FileHelper.java
@@ -17,11 +17,18 @@
 package org.apache.camel.maven.connector;
 
 import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
+import java.util.ArrayList;
+import java.util.List;
 
+/**
+ * Utility methods for files.
+ */
 public final class FileHelper {
 
     private FileHelper() {
@@ -56,4 +63,41 @@ public final class FileHelper {
         }
     }
 
+    /**
+     * Loads the file
+     */
+    public static List<String> loadFile(File file) throws Exception {
+        List<String> lines = new ArrayList<>();
+        LineNumberReader reader = new LineNumberReader(new FileReader(file));
+
+        String line;
+        do {
+            line = reader.readLine();
+            if (line != null) {
+                lines.add(line);
+            }
+        } while (line != null);
+        reader.close();
+
+        return lines;
+    }
+
+    /**
+     * Loads the file
+     */
+    public static List<String> loadFile(InputStream fis) throws Exception {
+        List<String> lines = new ArrayList<>();
+        LineNumberReader reader = new LineNumberReader(new InputStreamReader(fis));
+
+        String line;
+        do {
+            line = reader.readLine();
+            if (line != null) {
+                lines.add(line);
+            }
+        } while (line != null);
+        reader.close();
+
+        return lines;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/GitHelper.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/GitHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/GitHelper.java
index 023a948..bd879f7 100644
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/GitHelper.java
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/GitHelper.java
@@ -24,11 +24,17 @@ import java.io.StringReader;
 import java.util.HashMap;
 import java.util.Map;
 
+/**
+ * Utility methods for git.
+ */
 public final class GitHelper {
 
     private GitHelper() {
     }
 
+    /**
+     * Finds the folder where <tt>.git</tt> is located in the project
+     */
     public static File findGitFolder() {
         File baseDir = new File("").getAbsoluteFile();
         return findGitFolder(baseDir);

http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/JSonSchemaHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/JSonSchemaHelper.java
index d42e5e3..018d548 100644
--- a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/JSonSchemaHelper.java
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/JSonSchemaHelper.java
@@ -25,6 +25,9 @@ import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+/**
+ * Basic JSon parser to read the Camel component JSon schema files.
+ */
 public final class JSonSchemaHelper {
 
     private static final Pattern PATTERN = Pattern.compile("\"(.+?)\"|\\[(.+)\\]");

http://git-wip-us.apache.org/repos/asf/camel/blob/065561d2/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/StringHelper.java
----------------------------------------------------------------------
diff --git a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/StringHelper.java b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/StringHelper.java
new file mode 100644
index 0000000..10d514b
--- /dev/null
+++ b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/StringHelper.java
@@ -0,0 +1,61 @@
+/**
+ * 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.maven.connector;
+
+/**
+ * Utility methods for String.
+ */
+public final class StringHelper {
+
+    private StringHelper() {
+    }
+
+    /**
+     * Converts the value to use dash style instead of upper cased
+     */
+    public static String camelCaseToDash(String value) {
+        StringBuilder sb = new StringBuilder(value.length());
+        boolean dash = false;
+
+        for (char c : value.toCharArray()) {
+            // skip dash in start
+            if (sb.length() > 0 & Character.isUpperCase(c)) {
+                dash = true;
+            }
+            if (dash) {
+                sb.append('-');
+                sb.append(Character.toLowerCase(c));
+            } else {
+                // lower case first
+                if (sb.length() == 0) {
+                    sb.append(Character.toLowerCase(c));
+                } else {
+                    sb.append(c);
+                }
+            }
+            dash = false;
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Returns the string value (uses empty string for <tt>null</tt> values)
+     */
+    public static String nullSafe(String text) {
+        return text != null ? text : "";
+    }
+}