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