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() {