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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6e8691c  CAMEL-13981: make sure that the property helper...
6e8691c is described below

commit 6e8691c908875f64942f7c97321bf3028b8f5a81
Author: Zoran Regvart <zregv...@apache.org>
AuthorDate: Mon Sep 16 16:57:44 2019 +0200

    CAMEL-13981: make sure that the property helper...
    
    ... class is generated
    
    The helper class would be generated if the `last` boolean flag was set
    and the conditions in the helper did not prevent further execution of
    the `processModelClass` method.
    
    For example if the last processed element is abstract, and it might be
    depending on the order of the elements in the `Set` of processed
    elements the `DefinitionPropertiesPlaceholderProviderHelper.java` would
    not be generated.
---
 .../camel/tools/apt/CoreEipAnnotationProcessorHelper.java      | 10 +---------
 .../org/apache/camel/tools/apt/ModelAnnotationProcessor.java   |  7 +++++--
 .../camel/tools/apt/SpringAnnotationProcessorHelper.java       |  2 +-
 3 files changed, 7 insertions(+), 12 deletions(-)

diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index fa0be2b..b53d63b 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -54,7 +54,6 @@ import static 
org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeEleme
 import static 
org.apache.camel.tools.apt.AnnotationProcessorHelper.hasSuperClass;
 import static 
org.apache.camel.tools.apt.AnnotationProcessorHelper.implementsInterface;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.processFile;
-import static 
org.apache.camel.tools.apt.PropertyPlaceholderGenerator.generatePropertyPlaceholderDefinitionsHelper;
 import static 
org.apache.camel.tools.apt.helper.JsonSchemaHelper.sanitizeDescription;
 import static org.apache.camel.tools.apt.helper.Strings.canonicalClassName;
 import static org.apache.camel.tools.apt.helper.Strings.isNullOrEmpty;
@@ -89,7 +88,7 @@ public class CoreEipAnnotationProcessorHelper {
     private boolean skipUnwanted = true;
 
     protected void processModelClass(final ProcessingEnvironment 
processingEnv, final RoundEnvironment roundEnv,
-                                     final TypeElement classElement, 
Set<String> propertyPlaceholderDefinitions, final boolean last) {
+                                     final TypeElement classElement, 
Set<String> propertyPlaceholderDefinitions) {
         final String javaTypeName = 
canonicalClassName(classElement.getQualifiedName().toString());
         String packageName = javaTypeName.substring(0, 
javaTypeName.lastIndexOf("."));
 
@@ -128,13 +127,6 @@ public class CoreEipAnnotationProcessorHelper {
         // write json schema and property placeholder provider
         processFile(processingEnv, packageName, fileName, writer -> 
writeJSonSchemeAndPropertyPlaceholderProvider(processingEnv, writer,
                 roundEnv, classElement, rootElement, javaTypeName, name, 
propertyPlaceholderDefinitions));
-
-        // if last then generate source code for helper that contains all the 
generated property placeholder providers
-        // (this allows fast property placeholders at runtime without 
reflection overhead)
-        if (last) {
-            processingEnv.getMessager().printMessage(Kind.WARNING, 
String.format("Generating placeholder definitions helper for %d definitions", 
propertyPlaceholderDefinitions.size()));
-            generatePropertyPlaceholderDefinitionsHelper(processingEnv, 
roundEnv, propertyPlaceholderDefinitions);
-        }
     }
 
     protected void 
writeJSonSchemeAndPropertyPlaceholderProvider(ProcessingEnvironment 
processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement 
classElement,
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
index d312ca8..b92cdba 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
@@ -87,14 +87,17 @@ public class ModelAnnotationProcessor extends 
AbstractCamelAnnotationProcessor {
         Iterator<? extends Element> it = coreElements.iterator();
         while (it.hasNext()) {
             TypeElement classElement = (TypeElement) it.next();
-            coreProcessor.processModelClass(processingEnv, roundEnv, 
classElement, propertyPlaceholderDefinitions, !it.hasNext());
+            coreProcessor.processModelClass(processingEnv, roundEnv, 
classElement, propertyPlaceholderDefinitions);
         }
 
         it = springElements.iterator();
         while (it.hasNext()) {
             TypeElement classElement = (TypeElement) it.next();
-            springProcessor.processModelClass(processingEnv, roundEnv, 
classElement, !it.hasNext());
+            springProcessor.processModelClass(processingEnv, roundEnv, 
classElement);
         }
+
+        messager.printMessage(Kind.WARNING, String.format("Generating 
placeholder definitions helper for %d definitions", 
propertyPlaceholderDefinitions.size()));
+        
PropertyPlaceholderGenerator.generatePropertyPlaceholderDefinitionsHelper(processingEnv,
 roundEnv, propertyPlaceholderDefinitions);
     }
 
 }
\ No newline at end of file
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
index fff0004..7259f47 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
@@ -57,7 +57,7 @@ import static 
org.apache.camel.tools.apt.helper.Strings.safeNull;
 public class SpringAnnotationProcessorHelper {
 
     protected void processModelClass(final ProcessingEnvironment 
processingEnv, final RoundEnvironment roundEnv,
-                                     final TypeElement classElement, final 
boolean last) {
+                                     final TypeElement classElement) {
         final String javaTypeName = 
canonicalClassName(classElement.getQualifiedName().toString());
         String packageName = javaTypeName.substring(0, 
javaTypeName.lastIndexOf("."));
 

Reply via email to