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/03/20 06:29:25 UTC

[camel] branch master updated: CAMEL-14657: Make generate plugin less verbose

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

davsclaus 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 87dd256  CAMEL-14657: Make generate plugin less verbose
87dd256 is described below

commit 87dd256f9316493b11f69fe5db9975ba070b1777
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Mar 20 07:21:09 2020 +0100

    CAMEL-14657: Make generate plugin less verbose
---
 .../maven/packaging/AbstractGeneratorMojo.java     | 12 ++++---
 .../camel/maven/packaging/ComponentDslMojo.java    | 22 +++++++-----
 .../camel/maven/packaging/EndpointDslMojo.java     | 39 ++++++++++++----------
 .../packaging/EndpointSchemaGeneratorMojo.java     |  4 +--
 .../component/ComponentsDslMetadataRegistry.java   | 12 +++----
 5 files changed, 51 insertions(+), 38 deletions(-)

diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
index 612804e..5f7e9ec 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/AbstractGeneratorMojo.java
@@ -77,12 +77,14 @@ public abstract class AbstractGeneratorMojo extends AbstractMojo {
         refresh(buildContext, file);
     }
 
-    protected void updateResource(Path dir, String fileName, String data) {
-        updateResource(buildContext, dir.resolve(fileName), data);
+    protected boolean updateResource(Path dir, String fileName, String data) {
+        boolean updated;
+        updated = updateResource(buildContext, dir.resolve(fileName), data);
         if (!fileName.endsWith(".java")) {
             Path outputDir = Paths.get(project.getBuild().getOutputDirectory());
-            updateResource(buildContext, outputDir.resolve(fileName), data);
+            updated |= updateResource(buildContext, outputDir.resolve(fileName), data);
         }
+        return updated;
     }
 
     protected String createProperties(String key, String val) {
@@ -111,14 +113,16 @@ public abstract class AbstractGeneratorMojo extends AbstractMojo {
         }
     }
 
-    public static void updateResource(BuildContext buildContext, Path out, String data) {
+    public static boolean updateResource(BuildContext buildContext, Path out, String data) {
         try {
             if (FileUtil.updateFile(out, data)) {
                 refresh(buildContext, out);
+                return true;
             }
         } catch (IOException e) {
             throw new IOError(e);
         }
+        return false;
     }
 
     public static boolean haveResourcesChanged(Log log, MavenProject project, BuildContext buildContext, String suffix) {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
index 6a8a65a..558603a 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
@@ -187,27 +187,33 @@ public class ComponentDslMojo extends AbstractGeneratorMojo {
 
     private ComponentDslBuilderFactoryGenerator syncAndGenerateSpecificComponentsBuilderFactories(final ComponentModel componentModel) throws MojoFailureException {
         final ComponentDslBuilderFactoryGenerator componentDslBuilderFactoryGenerator = ComponentDslBuilderFactoryGenerator.generateClass(componentModel, projectClassLoader, componentsDslPackageName);
-        writeSourceIfChanged(componentDslBuilderFactoryGenerator.printClassAsString(), componentsDslFactoriesPackageName.replace('.', '/'), componentDslBuilderFactoryGenerator.getGeneratedClassName() + ".java", sourcesOutputDir);
+        boolean updated = writeSourceIfChanged(componentDslBuilderFactoryGenerator.printClassAsString(), componentsDslFactoriesPackageName.replace('.', '/'), componentDslBuilderFactoryGenerator.getGeneratedClassName() + ".java", sourcesOutputDir);
 
-        getLog().info("Regenerate " + componentDslBuilderFactoryGenerator.getGeneratedClassName());
+        if (updated) {
+            getLog().info("Updated ComponentDsl: " + componentModel.getScheme());
+        }
 
         return componentDslBuilderFactoryGenerator;
     }
 
     private ComponentsDslMetadataRegistry syncAndUpdateComponentsMetadataRegistry(final ComponentModel componentModel, final String className) {
         final ComponentsDslMetadataRegistry componentsDslMetadataRegistry = new ComponentsDslMetadataRegistry(sourcesOutputDir.toPath().resolve(componentsDslFactoriesPackageName.replace('.', '/')).toFile(), componentsMetadata);
-        componentsDslMetadataRegistry.addComponentToMetadataAndSyncMetadataFile(componentModel, className);
+        boolean updated = componentsDslMetadataRegistry.addComponentToMetadataAndSyncMetadataFile(componentModel, className);
 
-        getLog().info("Update components metadata with " + className);
+        if (updated) {
+            getLog().info("Updated ComponentDsl metadata: " + componentModel.getScheme());
+        }
 
         return componentsDslMetadataRegistry;
     }
 
     private void syncAndGenerateComponentsBuilderFactories(final Set<ComponentModel> componentCachedModels) throws MojoFailureException {
         final ComponentsBuilderFactoryGenerator componentsBuilderFactoryGenerator = ComponentsBuilderFactoryGenerator.generateClass(componentCachedModels, projectClassLoader, componentsDslPackageName);
-        writeSourceIfChanged(componentsBuilderFactoryGenerator.printClassAsString(), componentsDslPackageName.replace('.', '/'), componentsBuilderFactoryGenerator.getGeneratedClassName() + ".java", sourcesOutputDir);
+        boolean updated = writeSourceIfChanged(componentsBuilderFactoryGenerator.printClassAsString(), componentsDslPackageName.replace('.', '/'), componentsBuilderFactoryGenerator.getGeneratedClassName() + ".java", sourcesOutputDir);
 
-        getLog().info("Regenerate " + componentsBuilderFactoryGenerator.getGeneratedClassName());
+        if (updated) {
+            getLog().info("Updated ComponentDsl factories: " + componentCachedModels);
+        }
     }
 
     protected static String loadJson(File file) {
@@ -255,7 +261,7 @@ public class ComponentDslMojo extends AbstractGeneratorMojo {
         }
     }
 
-    protected void writeSourceIfChanged(String source, String filePath, String fileName, File outputDir) throws MojoFailureException {
+    protected boolean writeSourceIfChanged(String source, String filePath, String fileName, File outputDir) throws MojoFailureException {
         Path target = outputDir.toPath().resolve(filePath).resolve(fileName);
 
         try {
@@ -266,7 +272,7 @@ public class ComponentDslMojo extends AbstractGeneratorMojo {
             String code = header + source;
             getLog().debug("Source code generated:\n" + code);
 
-            updateResource(buildContext, target, code);
+            return updateResource(buildContext, target, code);
         } catch (Exception e) {
             throw new MojoFailureException("IOError with file " + target, e);
         }
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
index 8ccc582..25dfbe1 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
@@ -234,20 +234,23 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
     }
 
     private void createEndpointDsl(ComponentModel model, List<ComponentModel> aliases, String overrideComponentName) throws MojoFailureException {
-
-        doCreateEndpointDsl(model, aliases, overrideComponentName);
+        boolean updated = doCreateEndpointDsl(model, aliases, overrideComponentName);
 
         // Update components metadata
-        getLog().info("Load components EndpointFactories");
+        getLog().debug("Load components EndpointFactories");
         List<File> endpointFactories = loadAllComponentsDslEndpointFactoriesAsFile();
 
-        getLog().info("Regenerate EndpointBuilderFactory");
+        getLog().debug("Regenerate EndpointBuilderFactory");
         // make sure EndpointBuilderFactory is synced
-        synchronizeEndpointBuilderFactoryInterface(endpointFactories);
+        updated |= synchronizeEndpointBuilderFactoryInterface(endpointFactories);
 
-        getLog().info("Regenerate EndpointBuilders");
+        getLog().debug("Regenerate EndpointBuilders");
         // make sure EndpointBuilders is synced
-        synchronizeEndpointBuildersInterface(endpointFactories);
+        updated |= synchronizeEndpointBuildersInterface(endpointFactories);
+
+        if (updated) {
+            getLog().info("Updated EndpointDsl: " + model.getScheme());
+        }
     }
 
     private ComponentsDslMetadataRegistry syncAndUpdateComponentsMetadataRegistry(final ComponentModel componentModel, final String className) {
@@ -257,13 +260,13 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
                             componentsMetadata);
         componentsDslMetadataRegistry.addComponentToMetadataAndSyncMetadataFile(componentModel, className);
 
-        getLog().info("Update components metadata with " + className);
+        getLog().debug("Update components metadata with " + className);
 
         return componentsDslMetadataRegistry;
     }
 
     @SuppressWarnings("checkstyle:methodlength")
-    private void doCreateEndpointDsl(ComponentModel model, List<ComponentModel> aliases, String overrideComponentName) throws MojoFailureException {
+    private boolean doCreateEndpointDsl(ComponentModel model, List<ComponentModel> aliases, String overrideComponentName) throws MojoFailureException {
         String componentClassName = model.getJavaType();
         String builderName = getEndpointName(componentClassName);
         Class<?> realComponentClass = loadClass(componentClassName);
@@ -548,10 +551,10 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
             dslClass.addMethod(method.copy()).setDefault().setBodyF("return %s.%s(%s);", javaClass.getName(), method.getName(), String.join(",", method.getParametersNames()));
         }
 
-        writeSourceIfChanged(javaClass, componentsFactoriesPackageName.replace('.', '/'), builderName + "Factory.java", false);
+        return writeSourceIfChanged(javaClass, componentsFactoriesPackageName.replace('.', '/'), builderName + "Factory.java", false);
     }
 
-    private void synchronizeEndpointBuilderFactoryInterface(List<File> factories) throws MojoFailureException {
+    private boolean synchronizeEndpointBuilderFactoryInterface(List<File> factories) throws MojoFailureException {
         JavaClass javaClass = new JavaClass(getProjectClassLoader());
         javaClass.setPackage(endpointFactoriesPackageName);
         javaClass.setName("EndpointBuilderFactory");
@@ -575,10 +578,10 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
             javaClass.implementInterface(componentsFactoriesPackageName + "." + factoryName + "." + endpointsName);
         }
 
-        writeSourceIfChanged("//CHECKSTYLE:OFF\n" + javaClass.printClass() + "\n//CHECKSTYLE:ON", endpointFactoriesPackageName.replace('.', '/'), "EndpointBuilderFactory.java");
+        return writeSourceIfChanged("//CHECKSTYLE:OFF\n" + javaClass.printClass() + "\n//CHECKSTYLE:ON", endpointFactoriesPackageName.replace('.', '/'), "EndpointBuilderFactory.java");
     }
 
-    private void synchronizeEndpointBuildersInterface(List<File> factories) throws MojoFailureException {
+    private boolean synchronizeEndpointBuildersInterface(List<File> factories) throws MojoFailureException {
         JavaClass javaClass = new JavaClass(getProjectClassLoader());
         javaClass.setPackage(endpointFactoriesPackageName);
         javaClass.setName("EndpointBuilders");
@@ -591,7 +594,7 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
             javaClass.implementInterface(componentsFactoriesPackageName + "." + Strings.before(factory.getName(), "."));
         }
 
-        writeSourceIfChanged("//CHECKSTYLE:OFF\n" + javaClass.printClass() + "\n//CHECKSTYLE:ON", endpointFactoriesPackageName.replace(".", "/"), "EndpointBuilders.java");
+        return writeSourceIfChanged("//CHECKSTYLE:OFF\n" + javaClass.printClass() + "\n//CHECKSTYLE:ON", endpointFactoriesPackageName.replace(".", "/"), "EndpointBuilders.java");
     }
 
     private List<File> loadAllComponentsDslEndpointFactoriesAsFile() {
@@ -918,11 +921,11 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
         }
     }
 
-    private void writeSourceIfChanged(JavaClass source, String filePath, String fileName, boolean innerClassesLast) throws MojoFailureException {
-        writeSourceIfChanged(source.printClass(innerClassesLast), filePath, fileName);
+    private boolean writeSourceIfChanged(JavaClass source, String filePath, String fileName, boolean innerClassesLast) throws MojoFailureException {
+        return writeSourceIfChanged(source.printClass(innerClassesLast), filePath, fileName);
     }
 
-    private void writeSourceIfChanged(String source, String filePath, String fileName) throws MojoFailureException {
+    private boolean writeSourceIfChanged(String source, String filePath, String fileName) throws MojoFailureException {
         try {
             String header;
             try (InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt")) {
@@ -931,7 +934,7 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
             String code = header + source;
             getLog().debug("Source code generated:\n" + code);
 
-            updateResource(sourcesOutputDir.toPath(), filePath + "/" + fileName, code);
+            return updateResource(sourcesOutputDir.toPath(), filePath + "/" + fileName, code);
         } catch (Exception e) {
             throw new MojoFailureException("IOError with file " + filePath + "/" + fileName, e);
         }
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
index 314d2ba..f865038 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java
@@ -248,9 +248,9 @@ public class EndpointSchemaGeneratorMojo extends AbstractGeneratorMojo {
         return componentModel;
     }
 
-    protected void updateResource(Path dir, String file, String data) {
+    protected boolean updateResource(Path dir, String file, String data) {
         resources.put(file, data);
-        super.updateResource(dir, file, data);
+        return super.updateResource(dir, file, data);
     }
 
     private String loadResource(String fileName) {
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistry.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistry.java
index 8527cce..36980e1 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistry.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/dsl/component/ComponentsDslMetadataRegistry.java
@@ -76,16 +76,16 @@ public class ComponentsDslMetadataRegistry {
                 .collect(Collectors.toCollection(TreeSet::new));
     }
 
-    public void addComponentToMetadataAndSyncMetadataFile(final ComponentModel componentModel, final String key) {
+    public boolean addComponentToMetadataAndSyncMetadataFile(final ComponentModel componentModel, final String key) {
         // put the component into the cache
         componentsCache.put(key, new ModifiedComponentModel(componentModel));
 
-        syncMetadataFile();
+        return syncMetadataFile();
     }
 
-    private void syncMetadataFile() {
+    private boolean syncMetadataFile() {
         syncMetadataFileWithGeneratedDslComponents();
-        writeCacheIntoMetadataFile();
+        return writeCacheIntoMetadataFile();
     }
 
     private void syncMetadataFileWithGeneratedDslComponents() {
@@ -101,12 +101,12 @@ public class ComponentsDslMetadataRegistry {
         componentsNamesToRemoveFromCache.forEach(componentFactoryName -> componentsCache.remove(componentFactoryName));
     }
 
-    private void writeCacheIntoMetadataFile() {
+    private boolean writeCacheIntoMetadataFile() {
         JsonObject json = new JsonObject();
         componentsCache.forEach((componentKey, componentModel) -> json.put(componentKey, JsonMapper.asJsonObject(componentModel).get("component")));
         final String jsonText = JsonMapper.serialize(json);
         try {
-            FileUtil.updateFile(metadataFile.toPath(), jsonText);
+            return FileUtil.updateFile(metadataFile.toPath(), jsonText);
         } catch (IOException ex) {
             throw new IOError(ex);
         }