Refactor and fixes m2e integration

The delta check wasn't properly working (because of absolute paths).
Factorised the checking method.
Added debug logs.


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

Branch: refs/heads/master
Commit: 5fca7ac4d670427c2dae7c8cf19fd40a87c6c10f
Parents: 35c14d2
Author: Victor Noël <victor.n...@linagora.com>
Authored: Mon May 18 13:28:21 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue May 19 08:20:41 2015 +0200

----------------------------------------------------------------------
 .../maven/packaging/PackageComponentMojo.java   | 15 +++++--------
 .../maven/packaging/PackageDataFormatMojo.java  | 11 ++--------
 .../camel/maven/packaging/PackageHelper.java    | 22 ++++++++++++++++++++
 .../maven/packaging/PackageLanguageMojo.java    |  5 +++++
 4 files changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5fca7ac4/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 e46d63d..92ed09d 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
@@ -84,19 +84,13 @@ public class PackageComponentMojo extends AbstractMojo {
     }
 
     public static void prepareComponent(Log log, MavenProject project, 
MavenProjectHelper projectHelper, File componentOutDir, BuildContext 
buildContext) throws MojoExecutionException {
-        File camelMetaDir = new File(componentOutDir, 
"META-INF/services/org/apache/camel/");
-
-        boolean changed = false;
-        for (Resource r : project.getBuild().getResources()) {
-            if (buildContext.hasDelta(r.getDirectory() + 
"/META-INF/services/org/apache/camel/component")) {
-                changed = true;
-            }
-        }
-
-        if (!changed) {
+        
+        if (!PackageHelper.haveResourcesChanged(log, project, buildContext, 
"META-INF/services/org/apache/camel/component")) {
             return;
         }
 
+        File camelMetaDir = new File(componentOutDir, 
"META-INF/services/org/apache/camel/");
+
         StringBuilder buffer = new StringBuilder();
         int count = 0;
         for (Resource r : project.getBuild().getResources()) {
@@ -145,6 +139,7 @@ public class PackageComponentMojo extends AbstractMojo {
                 properties.store(new FileWriter(outFile), "Generated by 
camel-package-maven-plugin");
                 buildContext.refresh(outFile);
                 log.info("Generated " + outFile + " containing " + count + " 
Camel " + (count > 1 ? "components: " : "component: ") + names);
+
                 if (projectHelper != null) {
                     List<String> includes = new ArrayList<String>();
                     includes.add("**/component.properties");

http://git-wip-us.apache.org/repos/asf/camel/blob/5fca7ac4/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 ee022d4..9ddfe28 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
@@ -105,17 +105,10 @@ public class PackageDataFormatMojo extends AbstractMojo {
 
     public static void prepareDataFormat(Log log, MavenProject project, 
MavenProjectHelper projectHelper, File dataFormatOutDir, File schemaOutDir, 
BuildContext buildContext) throws MojoExecutionException {
 
-        boolean changed = false;
-        for (Resource r : project.getBuild().getResources()) {
-            if (buildContext.hasDelta(r.getDirectory() + 
"/META-INF/services/org/apache/camel/dataformat")) {
-                changed = true;
-            }
-        }
-
-        if (!changed) {
+        if (!PackageHelper.haveResourcesChanged(log, project, buildContext, 
"META-INF/services/org/apache/camel/dataformat")) {
             return;
         }
-        
+
         File camelMetaDir = new File(dataFormatOutDir, 
"META-INF/services/org/apache/camel/");
 
         Map<String, String> javaTypes = new HashMap<String, String>();

http://git-wip-us.apache.org/repos/asf/camel/blob/5fca7ac4/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
index e3794d7..c6d9009 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
@@ -27,10 +27,32 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.MavenProject;
+import org.sonatype.plexus.build.incremental.BuildContext;
+
 public final class PackageHelper {
 
     private PackageHelper() {
     }
+    
+    public static boolean haveResourcesChanged(Log log, MavenProject project, 
BuildContext buildContext, String suffix) {
+        String baseDir = project.getBasedir().getAbsolutePath();
+        for (Resource r : project.getBuild().getResources()) {
+            File file = new File(r.getDirectory());
+            if (file.isAbsolute()) {
+                file = new File(r.getDirectory().substring(baseDir.length() + 
1));
+            }
+            String path = file.getPath() + "/" + suffix;
+            log.debug("checking  if "+ path + " (" + r.getDirectory() + "/" + 
suffix + ") has changed.");
+            if (buildContext.hasDelta(path)) {
+                log.debug("Indeed "+ suffix +" has changed.");
+                return true;
+            }
+        }
+        return false;
+    }
 
     /**
      * Loads the entire stream into memory as a String and returns it.

http://git-wip-us.apache.org/repos/asf/camel/blob/5fca7ac4/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 2e3d544..8af508d 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
@@ -104,6 +104,11 @@ public class PackageLanguageMojo extends AbstractMojo {
     }
 
     public static void prepareLanguage(Log log, MavenProject project, 
MavenProjectHelper projectHelper, File languageOutDir, File schemaOutDir, 
BuildContext buildContext) throws MojoExecutionException {
+
+        if (!PackageHelper.haveResourcesChanged(log, project, buildContext, 
"META-INF/services/org/apache/camel/language")) {
+            return;
+        }
+
         File camelMetaDir = new File(languageOutDir, 
"META-INF/services/org/apache/camel/");
 
         Map<String, String> javaTypes = new HashMap<String, String>();

Reply via email to