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

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


The following commit(s) were added to refs/heads/CAMEL-13870 by this push:
     new 4aea1c6  CAMEL-13870: Fast property configuration of Camel endpoints. 
Work in progress.
4aea1c6 is described below

commit 4aea1c6483e3571965e1fccf6529cb84c0fa2841
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Aug 21 12:02:40 2019 +0200

    CAMEL-13870: Fast property configuration of Camel endpoints. Work in 
progress.
---
 .../tools/apt/EndpointAnnotationProcessor.java     |  2 +-
 .../apt/EndpointPropertyConfigurerGenerator.java   | 24 ++++++++++------------
 .../camel/tools/apt/helper/JsonSchemaHelper.java   | 14 ++++++-------
 .../camel/tools/apt/model/EndpointOption.java      | 18 ++++++++--------
 4 files changed, 28 insertions(+), 30 deletions(-)

diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index fc6f99b..368bec5 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -390,7 +390,7 @@ public class EndpointAnnotationProcessor extends 
AbstractCamelAnnotationProcesso
 
             buffer.append(JsonSchemaHelper.toJson(entry.getName(), 
entry.getDisplayName(), "parameter", required, entry.getType(), defaultValue,
                 doc, entry.isDeprecated(), entry.getDeprecationNote(), 
entry.isSecret(), entry.getGroup(), entry.getLabel(), entry.isEnumType(), 
entry.getEnums(),
-                false, null, asPredicate, optionalPrefix, prefix, multiValue, 
entry.getNestedTypeName(), entry.getNestedFieldName()));
+                false, null, asPredicate, optionalPrefix, prefix, multiValue, 
entry.getConfigurationClass(), entry.getConfigurationField()));
 
             parentProperties.remove(entry.getName());
         }
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointPropertyConfigurerGenerator.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointPropertyConfigurerGenerator.java
index c46c178..477dc9c 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointPropertyConfigurerGenerator.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointPropertyConfigurerGenerator.java
@@ -78,8 +78,8 @@ public final class EndpointPropertyConfigurerGenerator {
             for (EndpointOption option : options) {
                 String getOrSet = option.getName();
                 getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + 
getOrSet.substring(1);
-                String getterLambda = getterLambda(getOrSet, option.getName(), 
option.getType(), option.getNestedFieldName());
-                String setterLambda = setterLambda(getOrSet, option.getName(), 
option.getType(), option.getNestedFieldName());
+                String getterLambda = getterLambda(getOrSet, option.getName(), 
option.getType(), option.getConfigurationField());
+                String setterLambda = setterLambda(getOrSet, option.getName(), 
option.getType(), option.getConfigurationField());
                 w.write("        readPlaceholders.put(\"" + option.getName() + 
"\", " + getterLambda + ");\n");
                 w.write("        writePlaceholders.put(\"" + option.getName() 
+ "\", " + setterLambda + ");\n");
             }
@@ -106,29 +106,27 @@ public final class EndpointPropertyConfigurerGenerator {
         }
     }
 
-    private static String getterLambda(String getOrSet, String name, String 
type, String nestedFieldName) {
-        String nested = "";
-        if (nestedFieldName != null) {
-            nested = "get" + Character.toUpperCase(nestedFieldName.charAt(0)) 
+ nestedFieldName.substring(1) + "().";
+    private static String getterLambda(String getOrSet, String name, String 
type, String configurationField) {
+        String configuration = "";
+        if (configurationField != null) {
+            configuration = "get" + 
Character.toUpperCase(configurationField.charAt(0)) + 
configurationField.substring(1) + "().";
         }
         String getPrefix = "boolean".equals(type) ? "is" : "get";
-        return "() -> endpoint." + nested + "" + getPrefix + getOrSet + "()";
+        return String.format("() -> endpoint.%s%s%s()", configuration, 
getPrefix, getOrSet);
     }
 
-    private static String setterLambda(String getOrSet, String name, String 
type, String nestedFieldName) {
+    private static String setterLambda(String getOrSet, String name, String 
type, String configurationField) {
         // type may contain generics so remove those
         if (type.indexOf('<') != -1) {
             type = type.substring(0, type.indexOf('<'));
         }
-        if (nestedFieldName != null) {
-            getOrSet = "get" + 
Character.toUpperCase(nestedFieldName.charAt(0)) + nestedFieldName.substring(1) 
+ "().set" + getOrSet;
+        if (configurationField != null) {
+            getOrSet = "get" + 
Character.toUpperCase(configurationField.charAt(0)) + 
configurationField.substring(1) + "().set" + getOrSet;
         } else {
             getOrSet = "set" + getOrSet;
         }
 
-        StringBuilder sb = new StringBuilder();
-        sb.append("o -> 
endpoint.").append(getOrSet).append("(property(camelContext, 
").append(type).append(".class, o))");
-        return sb.toString();
+        return String.format("o -> endpoint.%s(property(camelContext, 
%s.class, o))", getOrSet, type);
     }
 
     public static void generateMetaInfConfigurer(ProcessingEnvironment 
processingEnv, String name, String fqn) {
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
index 3f6822b..cda387c 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
@@ -43,7 +43,7 @@ public final class JsonSchemaHelper {
     public static String toJson(String name, String displayName, String kind, 
Boolean required, String type, String defaultValue, String description,
                                 Boolean deprecated, String deprecationNote, 
Boolean secret, String group, String label, boolean enumType, Set<String> enums,
                                 boolean oneOfType, Set<String> oneOffTypes, 
boolean asPredicate, String optionalPrefix, String prefix, boolean multiValue,
-                                String nestedTypeName, String nestedFieldName) 
{
+                                String configurationClass, String 
configurtationField) {
         String typeName = JsonSchemaHelper.getType(type, enumType);
 
         StringBuilder sb = new StringBuilder();
@@ -154,13 +154,13 @@ public final class JsonSchemaHelper {
             }
         }
 
-        if (!Strings.isNullOrEmpty(nestedTypeName)) {
-            sb.append(", \"nestedTypeName\": ");
-            sb.append(Strings.doubleQuote(nestedTypeName));
+        if (!Strings.isNullOrEmpty(configurationClass)) {
+            sb.append(", \"configurationClass\": ");
+            sb.append(Strings.doubleQuote(configurationClass));
         }
-        if (!Strings.isNullOrEmpty(nestedFieldName)) {
-            sb.append(", \"nestedFieldName\": ");
-            sb.append(Strings.doubleQuote(nestedFieldName));
+        if (!Strings.isNullOrEmpty(configurtationField)) {
+            sb.append(", \"configurationField\": ");
+            sb.append(Strings.doubleQuote(configurtationField));
         }
 
         if (!Strings.isNullOrEmpty(description)) {
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
index c8e6113..a225e1d 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/model/EndpointOption.java
@@ -39,13 +39,13 @@ public final class EndpointOption {
     private String label;
     private boolean enumType;
     private Set<String> enums;
-    private String nestedTypeName;
-    private String nestedFieldName;
+    private String configurationClass;
+    private String configurationField;
 
     public EndpointOption(String name, String displayName, String type, 
boolean required, String defaultValue, String defaultValueNote,
                           String documentation, String optionalPrefix, String 
prefix, boolean multiValue,
                           boolean deprecated, String deprecationNote, boolean 
secret, String group, String label,
-                          boolean enumType, Set<String> enums, String 
nestedTypeName, String nestedFieldName) {
+                          boolean enumType, Set<String> enums, String 
configurationClass, String nestedFieldName) {
         this.name = name;
         this.displayName = displayName;
         this.type = type;
@@ -63,8 +63,8 @@ public final class EndpointOption {
         this.label = label;
         this.enumType = enumType;
         this.enums = enums;
-        this.nestedTypeName = nestedTypeName;
-        this.nestedFieldName = nestedFieldName;
+        this.configurationClass = configurationClass;
+        this.configurationField = nestedFieldName;
     }
 
     public String getName() {
@@ -137,12 +137,12 @@ public final class EndpointOption {
         return enums;
     }
 
-    public String getNestedTypeName() {
-        return nestedTypeName;
+    public String getConfigurationClass() {
+        return configurationClass;
     }
 
-    public String getNestedFieldName() {
-        return nestedFieldName;
+    public String getConfigurationField() {
+        return configurationField;
     }
 
     public String getGroup() {

Reply via email to