This is an automated email from the ASF dual-hosted git repository. davsclaus 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 97167a1 Attempt to fix releasing Apache Camel in the camel-dependencies sync generator. 97167a1 is described below commit 97167a18aca7d49f42c881020b0dad0ce517ac45 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Jan 31 15:03:29 2022 +0100 Attempt to fix releasing Apache Camel in the camel-dependencies sync generator. --- tooling/maven/sync-properties-maven-plugin/pom.xml | 4 ++ .../maven/sync/properties/SyncPropertiesMojo.java | 49 ++++++++++------------ 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/tooling/maven/sync-properties-maven-plugin/pom.xml b/tooling/maven/sync-properties-maven-plugin/pom.xml index da3a8a4..6c99f7c 100644 --- a/tooling/maven/sync-properties-maven-plugin/pom.xml +++ b/tooling/maven/sync-properties-maven-plugin/pom.xml @@ -51,6 +51,10 @@ <artifactId>camel-util</artifactId> </dependency> <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-tooling-util</artifactId> + </dependency> + <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-api</artifactId> </dependency> diff --git a/tooling/maven/sync-properties-maven-plugin/src/main/java/org/apache/camel/maven/sync/properties/SyncPropertiesMojo.java b/tooling/maven/sync-properties-maven-plugin/src/main/java/org/apache/camel/maven/sync/properties/SyncPropertiesMojo.java index 1fbc19c..b7ea3e7 100644 --- a/tooling/maven/sync-properties-maven-plugin/src/main/java/org/apache/camel/maven/sync/properties/SyncPropertiesMojo.java +++ b/tooling/maven/sync-properties-maven-plugin/src/main/java/org/apache/camel/maven/sync/properties/SyncPropertiesMojo.java @@ -18,13 +18,15 @@ package org.apache.camel.maven.sync.properties; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.Properties; import java.util.TreeMap; +import org.apache.camel.tooling.util.FileUtil; +import org.apache.camel.tooling.util.PackageHelper; import org.apache.camel.util.IOHelper; import org.apache.camel.util.OrderedProperties; import org.apache.maven.model.Model; @@ -45,19 +47,10 @@ import org.apache.maven.project.MavenProject; public class SyncPropertiesMojo extends AbstractMojo { /** - * The source POM file from which the required properties should be copied. + * The base directory */ - @Parameter(defaultValue = "${basedir}/../../parent/pom.xml") - protected File sourcePom; - - @Parameter(defaultValue = "${basedir}/../../camel-dependencies/pom.xml") - protected File targetPom; - - /** - * The license header file that should be inserted at the top of the destination POM file. - */ - @Parameter(defaultValue = "${basedir}/../../etc/apache-header.xml") - protected File licenseHeader; + @Parameter(defaultValue = "${project.basedir}") + protected File baseDir; /** * The Maven project. @@ -67,12 +60,18 @@ public class SyncPropertiesMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { + File dir = PackageHelper.findCamelDirectory(baseDir, "parent"); + File sourcePom = new File(dir, "pom.xml"); + dir = PackageHelper.findCamelDirectory(baseDir, "camel-dependencies"); + File targetPom = new File(dir, "pom.xml"); + dir = PackageHelper.findCamelDirectory(baseDir, "etc"); + File licenseHeader = new File(dir, "apache-header.xml"); + try { Properties parentProp; String generatedVersion; - String artifactId = "camel-dependencies"; - getLog().info("Reading source file " + sourcePom.toPath()); + getLog().debug("Reading source file " + sourcePom.toPath()); try (FileReader reader = new FileReader(sourcePom)) { MavenXpp3Reader mavenReader = new MavenXpp3Reader(); Model model = mavenReader.read(reader); @@ -88,14 +87,14 @@ public class SyncPropertiesMojo extends AbstractMojo { MavenXpp3Reader mavenReader = new MavenXpp3Reader(); Model model = mavenReader.read(is); - // lets sort the properties + // sort the properties OrderedProperties op = new OrderedProperties(); op.putAll(new TreeMap<>(parentProp)); MavenProject targetProject = new MavenProject(model); targetProject.getModel().setProperties(op); - getLog().info("Set version of target pom to " + generatedVersion); + getLog().debug("Set version of target pom to " + generatedVersion); targetProject.setVersion(generatedVersion); MavenXpp3Writer mavenWriter = new MavenXpp3Writer(); @@ -105,26 +104,24 @@ public class SyncPropertiesMojo extends AbstractMojo { } // add license header in top - getLog().info("Add license header..."); + getLog().debug("Add license header..."); String text = IOHelper.loadText(new FileInputStream(targetPom)); String text2 = IOHelper.loadText(new FileInputStream(licenseHeader)); - StringBuffer sb = new StringBuffer(text); + StringBuilder sb = new StringBuilder(text); int pos = sb.indexOf("<project"); sb.insert(pos, text2); // avoid annoying http -> https change when rebuilding - getLog().info("Replacing xsd location ..."); + getLog().debug("Replacing xsd location ..."); String out = sb.toString(); out = out.replace("https://maven.apache.org/xsd/maven-4.0.0.xsd", "http://maven.apache.org/xsd/maven-4.0.0.xsd"); // write lines - getLog().info("Writing lines to " + targetPom.toPath()); - try (FileOutputStream outputStream = new FileOutputStream(targetPom)) { - byte[] strToBytes = out.getBytes(); - outputStream.write(strToBytes); + boolean updated = FileUtil.updateFile(targetPom.toPath(), out, StandardCharsets.UTF_8); + if (updated) { + getLog().info("Updated: " + targetPom); } - - getLog().info("Finished."); + getLog().debug("Finished."); } catch (Exception ex) { throw new MojoExecutionException("Cannot copy the properties between POMs", ex); }