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 <claus.ib...@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); }