You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2025/07/28 12:16:51 UTC
(maven-release) 03/15: MRELEASE-1109 Full support for revision sha1 and changelist properties.
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/ci-friendly-complex-expressions
in repository https://gitbox.apache.org/repos/asf/maven-release.git
commit 3517d0f80720d256efe7d3a195278aef247135be
Author: mkolesnikov <mi...@outlook.com>
AuthorDate: Wed Nov 29 23:21:59 2023 +0300
MRELEASE-1109 Full support for revision sha1 and changelist properties.
---
.../shared/release/phase/RewritePomsForReleasePhase.java | 12 ++++++++++++
.../maven/shared/release/transform/jdom2/JDomModel.java | 12 +++++++++++-
.../maven/shared/release/transform/jdom2/JDomProperties.java | 4 +++-
.../release/phase/RewritePomsForDevelopmentPhaseTest.java | 5 ++++-
.../shared/release/transform/jdom2/JDomPropertiesTest.java | 9 ++++++---
.../expected-pom.xml | 3 ++-
.../pom-with-parent-and-cifriendly-expressions/pom.xml | 3 ++-
.../subproject1/expected-pom.xml | 2 +-
.../subproject1/pom.xml | 2 +-
.../expected-pom.xml | 7 ++++++-
.../pom-with-parent-and-cifriendly-expressions/pom.xml | 3 ++-
.../subproject1/expected-pom.xml | 2 +-
.../subproject1/pom.xml | 2 +-
maven-release-plugin/pom.xml | 8 +++++++-
.../src/it/projects/prepare/invoker.properties | 4 +---
15 files changed, 60 insertions(+), 18 deletions(-)
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
index 67b9f18c..ac10bfd3 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
@@ -26,6 +26,7 @@ import java.io.IOException;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.List;
import java.util.Map;
import org.apache.maven.artifact.ArtifactUtils;
@@ -34,8 +35,10 @@ import org.apache.maven.model.Scm;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
import org.apache.maven.shared.release.scm.ScmTranslator;
import org.apache.maven.shared.release.transform.ModelETLFactory;
@@ -214,6 +217,15 @@ public class RewritePomsForReleasePhase extends AbstractRewritePomsPhase {
return result;
}
+ @Override
+ public ReleaseResult execute(
+ ReleaseDescriptor releaseDescriptor,
+ ReleaseEnvironment releaseEnvironment,
+ List<MavenProject> reactorProjects)
+ throws ReleaseExecutionException, ReleaseFailureException {
+ return super.execute(releaseDescriptor, releaseEnvironment, reactorProjects);
+ }
+
@Override
protected String getOriginalVersion(ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate) {
return releaseDescriptor.getProjectOriginalVersion(projectKey);
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModel.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModel.java
index 20d972bd..949ce594 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModel.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModel.java
@@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Properties;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
@@ -198,7 +199,16 @@ public class JDomModel extends Model {
AbstractRewritePomsPhase.extractPropertyFromExpression(versionElement.getTextNormalize());
Properties properties = getProperties();
if (properties != null) {
- properties.setProperty(ciFriendlyPropertyName, version);
+ String sha1 = properties.getProperty("sha1", "");
+ String changelist = properties.getProperty("changelist", "");
+ properties.setProperty(
+ ciFriendlyPropertyName, version.replaceAll(sha1, "").replaceAll(changelist, ""));
+ if (ArtifactUtils.isSnapshot(version)) {
+ properties.setProperty("changelist", changelist);
+ } else {
+ properties.setProperty(ciFriendlyPropertyName, version);
+ properties.setProperty("changelist", "");
+ }
}
} else {
JDomUtils.rewriteValue(versionElement, version);
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomProperties.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomProperties.java
index b2c314f3..6a560649 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomProperties.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomProperties.java
@@ -114,7 +114,9 @@ public class JDomProperties extends Properties {
@Override
public String getProperty(String key, String defaultValue) {
- throw new UnsupportedOperationException();
+ String property = getProperty(key);
+
+ return property == null ? defaultValue : property;
}
@Override
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
index b1bebb81..59cc47c3 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
@@ -404,11 +404,14 @@ public class RewritePomsForDevelopmentPhaseTest extends AbstractEditModeRewritin
List<MavenProject> reactorProjects = createReactorProjects("pom-with-parent-and-cifriendly-expressions");
ReleaseDescriptorBuilder builder =
- createDescriptorFromProjects(reactorProjects, "pom-with-parent-and-cifriendly-expressions");
+ createDescriptorFromProjects(reactorProjects, "pom-with-parent-and-cifriendly-expressions");
builder.addReleaseVersion("groupId:artifactId", RELEASE_VERSION);
builder.addDevelopmentVersion("groupId:artifactId", NEXT_VERSION);
builder.addReleaseVersion("groupId:subproject1", RELEASE_VERSION);
builder.addDevelopmentVersion("groupId:subproject1", NEXT_VERSION);
+
+ mapScm(builder);
+
phase.execute(ReleaseUtils.buildReleaseDescriptor(builder), new DefaultReleaseEnvironment(), reactorProjects);
assertTrue(comparePomFiles(reactorProjects));
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/transform/jdom2/JDomPropertiesTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/transform/jdom2/JDomPropertiesTest.java
index fa9f48d9..0335a116 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/transform/jdom2/JDomPropertiesTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/transform/jdom2/JDomPropertiesTest.java
@@ -101,9 +101,12 @@ public class JDomPropertiesTest {
assertEquals("VALUE", new JDomProperties(propertiesElm).getProperty("KEY"));
}
- @Test(expected = UnsupportedOperationException.class)
- public void testGetPropertyDefault() {
- new JDomProperties(null).getProperty(null, null);
+ @Test
+ public void testGetPropertyDefault() throws Exception {
+ String content = "<properties></properties>";
+ Element propertiesElm = builder.build(new StringReader(content)).getRootElement();
+ assertNull(new JDomProperties(propertiesElm).getProperty("KEY", null));
+ assertEquals("", new JDomProperties(propertiesElm).getProperty("KEY", ""));
}
@Test(expected = UnsupportedOperationException.class)
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/expected-pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
index b30f8a7e..d2fe2b7a 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
@@ -20,7 +20,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
<packaging>pom</packaging>
<scm>
@@ -31,6 +31,7 @@
<properties>
<revision>1.1</revision>
+ <sha1>.123</sha1>
<changelist>-SNAPSHOT</changelist>
</properties>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/pom.xml
index cf04d4b7..e42e87c9 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/pom.xml
@@ -20,7 +20,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
<packaging>pom</packaging>
<scm>
@@ -31,6 +31,7 @@
<properties>
<revision>1.0</revision>
+ <sha1>.123</sha1>
<changelist>-SNAPSHOT</changelist>
</properties>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
index db70f739..a025619d 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
</parent>
<artifactId>subproject1</artifactId>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
index db70f739..a025619d 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
</parent>
<artifactId>subproject1</artifactId>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/expected-pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
index 00543238..f6bf47ca 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/expected-pom.xml
@@ -20,7 +20,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
<packaging>pom</packaging>
<scm>
@@ -31,10 +31,15 @@
<properties>
<revision>1.0</revision>
+<<<<<<< Upstream, based on master
<<<<<<< Upstream, based on master
<changelist></changelist>
=======
>>>>>>> ab5c8d5 MRELEASE-1109 patch JDomModel
+=======
+ <sha1>.123</sha1>
+ <changelist></changelist>
+>>>>>>> 0ad7bb6 MRELEASE-1109 Full support for revision sha1 and changelist properties.
</properties>
<modules>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/pom.xml
index 5910661e..d428097d 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/pom.xml
@@ -20,7 +20,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
<packaging>pom</packaging>
<scm>
@@ -31,6 +31,7 @@
<properties>
<revision>1.0</revision>
+ <sha1>.123</sha1>
<changelist>-SNAPSHOT</changelist>
</properties>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
index db70f739..a025619d 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/expected-pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
</parent>
<artifactId>subproject1</artifactId>
diff --git a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
index db70f739..a025619d 100644
--- a/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
+++ b/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-parent-and-cifriendly-expressions/subproject1/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
- <version>${revision}${changelist}</version>
+ <version>${revision}${sha1}${changelist}</version>
</parent>
<artifactId>subproject1</artifactId>
diff --git a/maven-release-plugin/pom.xml b/maven-release-plugin/pom.xml
index 2af4a213..3aa59772 100644
--- a/maven-release-plugin/pom.xml
+++ b/maven-release-plugin/pom.xml
@@ -224,7 +224,13 @@
<setupInclude>setup/*/pom.xml</setupInclude>
</setupIncludes>
<pomIncludes>
- <pomInclude>projects/prepare/ci-friendly-multi-module/*pom.xml</pomInclude>
+ <pomInclude>projects/prepare/*/*pom.xml</pomInclude>
+ <pomInclude>projects/prepare/flat-multi-module/parent-project/pom.xml</pomInclude>
+ <pomInclude>projects/prepare-with-pom/*/*pom.xml</pomInclude>
+ <pomInclude>projects/branch/*/pom.xml</pomInclude>
+ <pomInclude>projects/perform/*/pom.xml</pomInclude>
+ <pomInclude>projects/update-versions/*/pom.xml</pomInclude>
+ <pomInclude>projects/stage/*/pom.xml</pomInclude>
</pomIncludes>
<pomExcludes>
<pomExclude>projects/prepare/MRELEASE-966/pom.xml</pomExclude>
diff --git a/maven-release-plugin/src/it/projects/prepare/invoker.properties b/maven-release-plugin/src/it/projects/prepare/invoker.properties
index 2ac39567..43b6c5fc 100644
--- a/maven-release-plugin/src/it/projects/prepare/invoker.properties
+++ b/maven-release-plugin/src/it/projects/prepare/invoker.properties
@@ -15,6 +15,4 @@
# specific language governing permissions and limitations
# under the License.
-invoker.goals = release:clean release:prepare
-
-invoker.mavenOpts = -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
\ No newline at end of file
+invoker.goals = release:clean release:prepare
\ No newline at end of file