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 2015/07/08 10:18:36 UTC

camel git commit: CAMEL-8924: Camel maven plugin only save file if there is a change to avoid maven compiler plugin would re-compile all the source code.

Repository: camel
Updated Branches:
  refs/heads/master b9bcff279 -> 044a12c21


CAMEL-8924: Camel maven plugin only save file if there is a change to avoid maven compiler plugin would re-compile all the source code.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/044a12c2
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/044a12c2
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/044a12c2

Branch: refs/heads/master
Commit: 044a12c21db8b8cc58eb797617164ca450159e0d
Parents: b9bcff2
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Jul 8 10:24:58 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Jul 8 10:24:58 2015 +0200

----------------------------------------------------------------------
 .../maven/packaging/PackageComponentMojo.java   | 24 +++++++++++++++++++-
 .../maven/packaging/PackageDataFormatMojo.java  | 21 +++++++++++++++++
 .../maven/packaging/PackageLanguageMojo.java    | 21 +++++++++++++++++
 3 files changed, 65 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/044a12c2/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
index 774e49c..a51601c 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
@@ -17,7 +17,9 @@
 package org.apache.camel.maven.packaging;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Collections;
 import java.util.Properties;
@@ -29,7 +31,6 @@ import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
-import org.omg.IOP.IORHelper;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
 /**
@@ -141,6 +142,27 @@ public class PackageComponentMojo extends AbstractMojo {
 
             camelMetaDir.mkdirs();
             File outFile = new File(camelMetaDir, "component.properties");
+
+            // check if the existing file has the same content, and if so then leave it as is so we do not write any changes
+            // which can cause a re-compile of all the source code
+            if (outFile.exists()) {
+                try {
+                    Properties existing = new Properties();
+
+                    InputStream is = new FileInputStream(outFile);
+                    existing.load(is);
+                    is.close();
+
+                    // are the content the same?
+                    if (existing.equals(properties)) {
+                        log.debug("No component changes detected");
+                        return;
+                    }
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+
             try {
                 OutputStream os = buildContext.newFileOutputStream(outFile);
                 properties.store(os, "Generated by camel-package-maven-plugin");

http://git-wip-us.apache.org/repos/asf/camel/blob/044a12c2/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
index d7e3371..88d7057 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
@@ -261,6 +261,27 @@ public class PackageDataFormatMojo extends AbstractMojo {
 
             camelMetaDir.mkdirs();
             File outFile = new File(camelMetaDir, "dataformat.properties");
+
+            // check if the existing file has the same content, and if so then leave it as is so we do not write any changes
+            // which can cause a re-compile of all the source code
+            if (outFile.exists()) {
+                try {
+                    Properties existing = new Properties();
+
+                    InputStream is = new FileInputStream(outFile);
+                    existing.load(is);
+                    is.close();
+
+                    // are the content the same?
+                    if (existing.equals(properties)) {
+                        log.debug("No dataformat changes detected");
+                        return;
+                    }
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+
             try {
                 OutputStream os = buildContext.newFileOutputStream(outFile);
                 properties.store(os, "Generated by camel-package-maven-plugin");

http://git-wip-us.apache.org/repos/asf/camel/blob/044a12c2/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
index 0ff7a8d..d6596db 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
@@ -259,6 +259,27 @@ public class PackageLanguageMojo extends AbstractMojo {
 
             camelMetaDir.mkdirs();
             File outFile = new File(camelMetaDir, "language.properties");
+
+            // check if the existing file has the same content, and if so then leave it as is so we do not write any changes
+            // which can cause a re-compile of all the source code
+            if (outFile.exists()) {
+                try {
+                    Properties existing = new Properties();
+
+                    InputStream is = new FileInputStream(outFile);
+                    existing.load(is);
+                    is.close();
+
+                    // are the content the same?
+                    if (existing.equals(properties)) {
+                        log.debug("No language changes detected");
+                        return;
+                    }
+                } catch (IOException e) {
+                    // ignore
+                }
+            }
+
             try {
                 OutputStream os = buildContext.newFileOutputStream(outFile);
                 properties.store(os, "Generated by camel-package-maven-plugin");