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);
}