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 <[email protected]> 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); }
