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

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


The following commit(s) were added to refs/heads/main by this push:
     new 632fcef  Improve build speed
632fcef is described below

commit 632fcef05764d12d6770f1bcb4cf350bbd413a89
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Jun 8 13:00:40 2021 +0200

    Improve build speed
---
 dsl/camel-kotlin-dsl/pom.xml                              |  1 +
 dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/pom.xml    |  4 ++++
 .../maven/dsl/yaml/GenerateYamlDeserializersMojo.java     | 15 ++++++++++++++-
 .../camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java      |  6 +++++-
 4 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/dsl/camel-kotlin-dsl/pom.xml b/dsl/camel-kotlin-dsl/pom.xml
index 8d25cd6..82159e7 100644
--- a/dsl/camel-kotlin-dsl/pom.xml
+++ b/dsl/camel-kotlin-dsl/pom.xml
@@ -172,6 +172,7 @@
                             <sourceDirs>
                                 <sourceDir>src/main/kotlin</sourceDir>
                             </sourceDirs>
+                            <myIncremental>true</myIncremental>
                         </configuration>
                     </execution>
                     <execution>
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/pom.xml 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/pom.xml
index e1df736..dfc913c 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/pom.xml
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/pom.xml
@@ -107,6 +107,10 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-support</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-tooling-util</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.jboss</groupId>
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
index e2e6fcd..b2d885b 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlDeserializersMojo.java
@@ -17,6 +17,9 @@
 package org.apache.camel.maven.dsl.yaml;
 
 import java.io.File;
+import java.io.StringWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -46,6 +49,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.maven.dsl.yaml.support.ToolingSupport;
 import org.apache.camel.maven.dsl.yaml.support.TypeSpecHolder;
 import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.tooling.util.FileUtil;
 import org.apache.camel.util.StringHelper;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -94,11 +98,20 @@ public class GenerateYamlDeserializersMojo extends 
GenerateYamlSupportMojo {
 
     private void write(Collection<TypeSpec> specs) throws Exception {
         for (TypeSpec typeSpec: specs) {
+            StringWriter sw = new StringWriter();
             JavaFile.builder(packageName, typeSpec)
                 .addFileComment("Generated by camel-yaml-dsl-maven-plugin - do 
NOT edit this file!")
                 .indent("    ")
                 .build()
-                .writeTo(sourcesOutputDir.toPath());
+                .writeTo(sw);
+            Path outputDirectory = sourcesOutputDir.toPath();
+            if (!packageName.isEmpty()) {
+                for (String packageComponent : packageName.split("\\.")) {
+                    outputDirectory = 
outputDirectory.resolve(packageComponent);
+                }
+                Files.createDirectories(outputDirectory);
+            }
+            FileUtil.updateFile(outputDirectory.resolve(typeSpec.name + 
".java"), sw.toString());
         }
     }
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
index 193d94d..beb5c3a 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin/src/main/java/org/apache/camel/maven/dsl/yaml/GenerateYamlSchemaMojo.java
@@ -18,6 +18,7 @@ package org.apache.camel.maven.dsl.yaml;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
@@ -32,6 +33,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.camel.maven.dsl.yaml.support.ToolingSupport;
+import org.apache.camel.tooling.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
 import org.apache.maven.plugin.MojoFailureException;
@@ -120,7 +122,9 @@ public class GenerateYamlSchemaMojo extends 
GenerateYamlSupportMojo {
         try {
             ToolingSupport.mkparents(outputFile);
 
-            mapper.writerWithDefaultPrettyPrinter().writeValue(outputFile, 
root);
+            StringWriter sw = new StringWriter();
+            mapper.writerWithDefaultPrettyPrinter().writeValue(sw, root);
+            FileUtil.updateFile(outputFile.toPath(), sw.toString());
         } catch (IOException e) {
             throw new MojoFailureException(e.getMessage(), e);
         }

Reply via email to