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 2020/09/16 07:55:46 UTC

[camel] 02/02: CAMEL-15478: Cleanup

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch api
in repository https://gitbox.apache.org/repos/asf/camel.git

commit e81d5b57cdde7d1b65943a4099b647ff9ae29227
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Sep 16 09:55:08 2020 +0200

    CAMEL-15478: Cleanup
---
 .../maven/AbstractApiMethodGeneratorMojo.java      |  4 +-
 .../maven/JavaSourceApiMethodGeneratorMojo.java    | 14 ++--
 .../org/apache/camel/maven/JavaSourceParser.java   | 92 +++++++++++++---------
 .../org/apache/camel/maven/SignatureModel.java     | 20 ++---
 .../apache/camel/maven/JavaSourceParserTest.java   | 47 +++++------
 5 files changed, 98 insertions(+), 79 deletions(-)

diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
index 704994f..72a7e46 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/AbstractApiMethodGeneratorMojo.java
@@ -100,10 +100,10 @@ public abstract class AbstractApiMethodGeneratorMojo extends AbstractApiMethodBa
                 method = StringHelper.after(method, " ");
             }
             if (method != null) {
-                parameters.put(method, model.getParameters());
+                parameters.put(method, model.getParameterDescriptions());
             }
             parser.getDescriptions().put(method, model.getMethodDescription());
-            parser.addSignatureArguments(model.getSignature(), model.getArguments());
+            parser.addSignatureArguments(model.getSignature(), model.getParameterTypes());
         }
         parser.setSignatures(signatures);
         parser.setParameters(parameters);
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceApiMethodGeneratorMojo.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceApiMethodGeneratorMojo.java
index 3e3628a..06b877b 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceApiMethodGeneratorMojo.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceApiMethodGeneratorMojo.java
@@ -102,7 +102,7 @@ public class JavaSourceApiMethodGeneratorMojo extends AbstractApiMethodGenerator
                 }
 
                 // get public method signature
-                for (String method : parser.getMethods()) {
+                for (String method : parser.getMethodSignatures()) {
                     if (!result.containsKey(method)
                             && (includeMethodPatterns == null || includeMethodPatterns.matcher(method).find())
                             && (excludeMethodPatterns == null || !excludeMethodPatterns.matcher(method).find())) {
@@ -112,14 +112,14 @@ public class JavaSourceApiMethodGeneratorMojo extends AbstractApiMethodGenerator
                         int whitespace = method.indexOf(' ');
                         int leftBracket = method.indexOf('(');
                         String name = method.substring(whitespace + 1, leftBracket);
+
                         SignatureModel model = new SignatureModel();
-                        model.setApiDescription(parser.getApiDescription());
                         model.setSignature(method);
-                        model.setMethodDescription(parser.getMethodDescriptions().get(name));
-                        Map<String, String> params = parser.getParameters().get(name);
-                        model.setParameters(params);
-                        Map<String, String> args = parser.getSignaturesArguments().get(signature);
-                        model.setArguments(args);
+                        model.setApiDescription(parser.getClassDoc());
+                        model.setMethodDescription(parser.getMethodDocs().get(name));
+                        model.setParameterDescriptions(parser.getParameterDocs().get(name));
+                        model.setParameterTypes(parser.getParameterTypes().get(signature));
+
                         result.put(method, model);
                     }
                 }
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceParser.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceParser.java
index dbc3fa0..b351636 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceParser.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/JavaSourceParser.java
@@ -49,13 +49,13 @@ public class JavaSourceParser {
 
     private static final Logger LOG = LoggerFactory.getLogger(JavaSourceParser.class);
 
-    private List<String> methods = new ArrayList<>();
-    private Map<String, String> methodText = new HashMap<>();
-    private Map<String, Map<String, String>> parameters = new LinkedHashMap<>();
-    private Map<String, Map<String, String>> signaturesArguments = new LinkedHashMap<>();
     private String errorMessage;
-    private String apiDescription;
-    private final Map<String, String> methodDescriptions = new HashMap<>();
+
+    private String classDoc;
+    private List<String> methodSignatures = new ArrayList<>();
+    private final Map<String, String> methodDocs = new HashMap<>();
+    private Map<String, Map<String, String>> parameterTypes = new LinkedHashMap<>();
+    private Map<String, Map<String, String>> parameterDocs = new LinkedHashMap<>();
 
     @SuppressWarnings("unchecked")
     public synchronized void parse(InputStream in, String innerClass) throws Exception {
@@ -75,14 +75,14 @@ public class JavaSourceParser {
 
         String rawClass = clazz.toUnformattedString();
         String doc = getClassJavadocRaw(clazz, rawClass);
-        apiDescription = sanitizeJavaDocValue(doc, true);
-        if (apiDescription == null || apiDescription.isEmpty()) {
+        classDoc = sanitizeJavaDocValue(doc, true);
+        if (classDoc == null || classDoc.isEmpty()) {
             rawClass = rootClazz.toUnformattedString();
             doc = getClassJavadocRaw(rootClazz, rawClass);
-            apiDescription = sanitizeJavaDocValue(doc, true);
+            classDoc = sanitizeJavaDocValue(doc, true);
         }
-        if (apiDescription != null && apiDescription.indexOf('.') > 0) {
-            apiDescription = StringHelper.before(apiDescription, ".");
+        if (classDoc != null && classDoc.indexOf('.') > 0) {
+            classDoc = StringHelper.before(classDoc, ".");
         }
 
         List<MethodSource> ml = ((MethodHolderSource) clazz).getMethods();
@@ -103,7 +103,7 @@ public class JavaSourceParser {
                 doc = StringHelper.before(doc, ".");
             }
             if (doc != null && !doc.isEmpty()) {
-                methodDescriptions.put(ms.getName(), doc);
+                methodDocs.put(ms.getName(), doc);
             }
 
             String result = resolveParameterizedType(rootClazz, clazz, ms, null, ms.getReturnType());
@@ -137,17 +137,16 @@ public class JavaSourceParser {
             }
             sb.append(")");
 
-            Map<String, String> existing = parameters.get(ms.getName());
+            Map<String, String> existing = parameterDocs.get(ms.getName());
             if (existing != null) {
                 existing.putAll(docs);
             } else {
-                parameters.put(ms.getName(), docs);
+                parameterDocs.put(ms.getName(), docs);
             }
 
             String signature = sb.toString();
-            methods.add(signature);
-            signaturesArguments.put(signature, args);
-            methodText.put(ms.getName(), signature);
+            methodSignatures.add(signature);
+            parameterTypes.put(signature, args);
         }
     }
 
@@ -431,40 +430,59 @@ public class JavaSourceParser {
     }
 
     public void reset() {
-        methods.clear();
-        methodText.clear();
-        parameters.clear();
-        signaturesArguments.clear();
-        methodDescriptions.clear();
+        methodSignatures.clear();
+        parameterDocs.clear();
+        parameterTypes.clear();
+        methodDocs.clear();
         errorMessage = null;
-        apiDescription = null;
+        classDoc = null;
     }
 
+    /**
+     * Contains the error message if parsing failed
+     */
     public String getErrorMessage() {
         return errorMessage;
     }
 
-    public List<String> getMethods() {
-        return methods;
-    }
-
-    public Map<String, Map<String, String>> getSignaturesArguments() {
-        return signaturesArguments;
+    /**
+     * Contains all the method signatures, such as: public String addUser(int userId, String name)
+     */
+    public List<String> getMethodSignatures() {
+        return methodSignatures;
     }
 
-    public Map<String, String> getMethodText() {
-        return methodText;
+    /**
+     * Parameter types for every method
+     *
+     * The key is the method signature, the inner map has key = parameter name, value = parameter type
+     */
+    public Map<String, Map<String, String>> getParameterTypes() {
+        return parameterTypes;
     }
 
-    public Map<String, Map<String, String>> getParameters() {
-        return parameters;
+    /**
+     * Documentation for every method and their arguments (parameters).
+     *
+     * The key is the method name, the inner map has key = parameter name, value = documentation
+     */
+    public Map<String, Map<String, String>> getParameterDocs() {
+        return parameterDocs;
     }
 
-    public String getApiDescription() {
-        return apiDescription;
+    /**
+     * Documentation for the class (api description)
+     */
+    public String getClassDoc() {
+        return classDoc;
     }
 
-    public Map<String, String> getMethodDescriptions() {
-        return methodDescriptions;
+    /**
+     * Documentation for every method
+     *
+     * The key is the method name, the value is the documentation
+     */
+    public Map<String, String> getMethodDocs() {
+        return methodDocs;
     }
 }
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/SignatureModel.java b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/SignatureModel.java
index cdc2c87..c623884 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/SignatureModel.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/main/java/org/apache/camel/maven/SignatureModel.java
@@ -27,8 +27,8 @@ public class SignatureModel {
     private String apiDescription;
     private String methodDescription;
     private String signature;
-    private Map<String, String> parameters;
-    private Map<String, String> arguments;
+    private Map<String, String> parameterDescriptions;
+    private Map<String, String> parameterTypes;
 
     public String getApiName() {
         return apiName;
@@ -62,19 +62,19 @@ public class SignatureModel {
         this.signature = signature;
     }
 
-    public Map<String, String> getParameters() {
-        return parameters;
+    public Map<String, String> getParameterDescriptions() {
+        return parameterDescriptions;
     }
 
-    public void setParameters(Map<String, String> parameters) {
-        this.parameters = parameters;
+    public void setParameterDescriptions(Map<String, String> parameterDescriptions) {
+        this.parameterDescriptions = parameterDescriptions;
     }
 
-    public Map<String, String> getArguments() {
-        return arguments;
+    public Map<String, String> getParameterTypes() {
+        return parameterTypes;
     }
 
-    public void setArguments(Map<String, String> arguments) {
-        this.arguments = arguments;
+    public void setParameterTypes(Map<String, String> parameterTypes) {
+        this.parameterTypes = parameterTypes;
     }
 }
diff --git a/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/JavaSourceParserTest.java b/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/JavaSourceParserTest.java
index 0f5a111..f8bda82 100644
--- a/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/JavaSourceParserTest.java
+++ b/tooling/maven/camel-api-component-maven-plugin/src/test/java/org/apache/camel/maven/JavaSourceParserTest.java
@@ -32,14 +32,14 @@ public class JavaSourceParserTest {
         final JavaSourceParser parser = new JavaSourceParser();
 
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/AddressGateway.java"), null);
-        assertEquals(4, parser.getMethods().size());
+        assertEquals(4, parser.getMethodSignatures().size());
 
         assertEquals(
                 "public com.braintreegateway.Result<com.braintreegateway.Address> create(String customerId, com.braintreegateway.AddressRequest request)",
-                parser.getMethods().get(0));
-        assertEquals(2, parser.getParameters().get("create").size());
-        assertEquals("The id of the Customer", parser.getParameters().get("create").get("customerId"));
-        assertEquals("The request object", parser.getParameters().get("create").get("request"));
+                parser.getMethodSignatures().get(0));
+        assertEquals(2, parser.getParameterDocs().get("create").size());
+        assertEquals("The id of the Customer", parser.getParameterDocs().get("create").get("customerId"));
+        assertEquals("The request object", parser.getParameterDocs().get("create").get("request"));
     }
 
     @Test
@@ -47,13 +47,13 @@ public class JavaSourceParserTest {
         final JavaSourceParser parser = new JavaSourceParser();
 
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/CustomerGateway.java"), null);
-        assertEquals(7, parser.getMethods().size());
+        assertEquals(7, parser.getMethodSignatures().size());
 
         assertEquals(
                 "public com.braintreegateway.Result<com.braintreegateway.Customer> create(com.braintreegateway.CustomerRequest request)",
-                parser.getMethods().get(1));
-        assertEquals(1, parser.getParameters().get("create").size());
-        assertEquals("The request", parser.getParameters().get("create").get("request"));
+                parser.getMethodSignatures().get(1));
+        assertEquals(1, parser.getParameterDocs().get("create").size());
+        assertEquals("The request", parser.getParameterDocs().get("create").get("request"));
     }
 
     @Test
@@ -61,15 +61,16 @@ public class JavaSourceParserTest {
         final JavaSourceParser parser = new JavaSourceParser();
 
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/DisputeGateway.java"), null);
-        assertEquals(9, parser.getMethods().size());
+        assertEquals(9, parser.getMethodSignatures().size());
 
         assertEquals(
                 "public com.braintreegateway.Result<com.braintreegateway.DisputeEvidence> addFileEvidence(String disputeId, String documentId)",
-                parser.getMethods().get(1));
-        assertEquals(3, parser.getParameters().get("addFileEvidence").size());
-        assertEquals("The dispute id to add text evidence to", parser.getParameters().get("addFileEvidence").get("disputeId"));
+                parser.getMethodSignatures().get(1));
+        assertEquals(3, parser.getParameterDocs().get("addFileEvidence").size());
+        assertEquals("The dispute id to add text evidence to",
+                parser.getParameterDocs().get("addFileEvidence").get("disputeId"));
         assertEquals("The document id of a previously uploaded document",
-                parser.getParameters().get("addFileEvidence").get("documentId"));
+                parser.getParameterDocs().get("addFileEvidence").get("documentId"));
     }
 
     @Test
@@ -77,12 +78,12 @@ public class JavaSourceParserTest {
         final JavaSourceParser parser = new JavaSourceParser();
 
         parser.parse(new FileInputStream("src/test/java/org/apache/camel/component/test/TestProxy.java"), null);
-        assertEquals(11, parser.getMethods().size());
+        assertEquals(11, parser.getMethodSignatures().size());
 
         // varargs is transformed to an array type as that is what works
         assertEquals(
                 "public String greetWildcard(String[] wildcardNames)",
-                parser.getMethods().get(6));
+                parser.getMethodSignatures().get(6));
     }
 
     @Test
@@ -90,13 +91,13 @@ public class JavaSourceParserTest {
         final JavaSourceParser parser = new JavaSourceParser();
 
         parser.parse(new FileInputStream("src/test/java/org/apache/camel/component/test/NestedProxy.java"), "Order");
-        assertEquals(1, parser.getMethods().size());
+        assertEquals(1, parser.getMethodSignatures().size());
 
         assertEquals(
                 "public String getOrderById(int id)",
-                parser.getMethods().get(0));
-        assertEquals(1, parser.getParameters().get("getOrderById").size());
-        assertEquals("The order id", parser.getParameters().get("getOrderById").get("id"));
+                parser.getMethodSignatures().get(0));
+        assertEquals(1, parser.getParameterDocs().get("getOrderById").size());
+        assertEquals("The order id", parser.getParameterDocs().get("getOrderById").get("id"));
     }
 
     @Test
@@ -105,13 +106,13 @@ public class JavaSourceParserTest {
 
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/DisputeGateway.java"), null);
 
-        String desc = parser.getApiDescription();
+        String desc = parser.getClassDoc();
         assertEquals("Provides methods to interact with Dispute objects", desc);
 
         parser.reset();
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/CustomGateway.java"), null);
 
-        desc = parser.getApiDescription();
+        desc = parser.getClassDoc();
         assertEquals("Provides methods to create, delete, find, and update Customer objects", desc);
     }
 
@@ -121,7 +122,7 @@ public class JavaSourceParserTest {
 
         parser.parse(JavaSourceParserTest.class.getResourceAsStream("/DisputeGateway.java"), null);
 
-        String desc = parser.getMethodDescriptions().get("addFileEvidence");
+        String desc = parser.getMethodDocs().get("addFileEvidence");
         assertEquals("Add File Evidence to a Dispute, given an ID and a FileEvidenceRequest File evidence request", desc);
     }