This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch maven-4.0.x
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/maven-4.0.x by this push:
     new 8f0090b11c Restore constructors and chained setters on deprecated 
testing stubs
8f0090b11c is described below

commit 8f0090b11c865b561cf2406163b29f0dba38ad8c
Author: Sylwester Lachiewicz <[email protected]>
AuthorDate: Sat Oct 24 15:56:08 2026 +0200

    Restore constructors and chained setters on deprecated testing stubs
---
 .../api/plugin/testing/stubs/ArtifactStub.java     |  8 +-
 .../api/plugin/testing/stubs/ProjectStub.java      | 87 +++++++++++++++++++++-
 .../api/plugin/testing/stubs/SessionStub.java      | 20 ++++-
 .../plugin/testing/stubs/ArtifactStubTest.java}    | 21 +++++-
 .../api/plugin/testing/stubs/ProjectStubTest.java} | 26 ++++++-
 .../api/plugin/testing/stubs/SessionStubTest.java} | 22 +++++-
 6 files changed, 172 insertions(+), 12 deletions(-)

diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
index 91f5b4175e..bf8bd09c21 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
+++ 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
@@ -20,4 +20,10 @@
 
 /** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.ArtifactStub} 
instead */
 @Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class ArtifactStub extends 
org.apache.maven.testing.plugin.stubs.ArtifactStub {}
+public class ArtifactStub extends 
org.apache.maven.testing.plugin.stubs.ArtifactStub {
+    public ArtifactStub() {}
+
+    public ArtifactStub(String groupId, String artifactId, String classifier, 
String version, String extension) {
+        super(groupId, artifactId, classifier, version, extension);
+    }
+}
diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
index 4d31732729..9bb97f6388 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
+++ 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
@@ -18,6 +18,91 @@
  */
 package org.apache.maven.api.plugin.testing.stubs;
 
+import java.nio.file.Path;
+
+import org.apache.maven.api.ProducedArtifact;
+
 /** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.ProjectStub} 
instead */
 @Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class ProjectStub extends 
org.apache.maven.testing.plugin.stubs.ProjectStub {}
+public class ProjectStub extends 
org.apache.maven.testing.plugin.stubs.ProjectStub {
+    // The setters are overridden with a covariant return type so that chained 
calls
+    // keep returning this deprecated type, as they did before the relocation.
+
+    @Override
+    public ProjectStub setBasedir(Path basedir) {
+        super.setBasedir(basedir);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setGroupId(String groupId) {
+        super.setGroupId(groupId);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setArtifactId(String artifactId) {
+        super.setArtifactId(artifactId);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setVersion(String version) {
+        super.setVersion(version);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setName(String name) {
+        super.setName(name);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setDescription(String desc) {
+        super.setDescription(desc);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setPackaging(String packaging) {
+        super.setPackaging(packaging);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setMainArtifact(ProducedArtifact mainArtifact) {
+        super.setMainArtifact(mainArtifact);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setPomPath(Path pomPath) {
+        super.setPomPath(pomPath);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setTopProject(boolean topProject) {
+        super.setTopProject(topProject);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setMavenModel(org.apache.maven.model.Model model) {
+        super.setMavenModel(model);
+        return this;
+    }
+
+    @Override
+    public ProjectStub setRootDirectory(Path rootDirectory) {
+        super.setRootDirectory(rootDirectory);
+        return this;
+    }
+
+    @Override
+    public ProjectStub addProperty(String key, String value) {
+        super.addProperty(key, value);
+        return this;
+    }
+}
diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
index 2eef77ffcd..557d3c1ce4 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
+++ 
b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
@@ -18,6 +18,24 @@
  */
 package org.apache.maven.api.plugin.testing.stubs;
 
+import java.util.Map;
+
+import org.apache.maven.api.settings.Settings;
+
 /** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.SessionStub} 
instead */
 @Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class SessionStub extends 
org.apache.maven.testing.plugin.stubs.SessionStub {}
+public class SessionStub extends 
org.apache.maven.testing.plugin.stubs.SessionStub {
+    public SessionStub() {}
+
+    public SessionStub(Settings settings) {
+        super(settings);
+    }
+
+    public SessionStub(Map<String, String> userProperties) {
+        super(userProperties);
+    }
+
+    public SessionStub(Map<String, String> systemProperties, Map<String, 
String> userProperties, Settings settings) {
+        super(systemProperties, userProperties, settings);
+    }
+}
diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStubTest.java
similarity index 58%
copy from 
impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
copy to 
impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStubTest.java
index 91f5b4175e..228aa45573 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
+++ 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStubTest.java
@@ -18,6 +18,21 @@
  */
 package org.apache.maven.api.plugin.testing.stubs;
 
-/** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.ArtifactStub} 
instead */
-@Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class ArtifactStub extends 
org.apache.maven.testing.plugin.stubs.ArtifactStub {}
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class ArtifactStubTest {
+
+    @Test
+    @SuppressWarnings("removal")
+    void deprecatedConstructorRemainsSourceCompatible() {
+        ArtifactStub artifact = new ArtifactStub("group", "artifact", "tests", 
"1.0", "jar");
+
+        assertEquals("group", artifact.getGroupId());
+        assertEquals("artifact", artifact.getArtifactId());
+        assertEquals("tests", artifact.getClassifier());
+        assertEquals("1.0", artifact.getVersion().toString());
+        assertEquals("jar", artifact.getExtension());
+    }
+}
diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ProjectStubTest.java
similarity index 52%
copy from 
impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
copy to 
impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ProjectStubTest.java
index 91f5b4175e..a69c7d7b23 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
+++ 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/ProjectStubTest.java
@@ -18,6 +18,26 @@
  */
 package org.apache.maven.api.plugin.testing.stubs;
 
-/** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.ArtifactStub} 
instead */
-@Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class ArtifactStub extends 
org.apache.maven.testing.plugin.stubs.ArtifactStub {}
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class ProjectStubTest {
+
+    @Test
+    @SuppressWarnings("removal")
+    void chainedSettersKeepTheDeprecatedType() {
+        ProjectStub project = new ProjectStub()
+                .setGroupId("group")
+                .setArtifactId("artifact")
+                .setVersion("1.0")
+                .setPackaging("jar")
+                .addProperty("key", "value");
+
+        assertEquals("group", project.getGroupId());
+        assertEquals("artifact", project.getArtifactId());
+        assertEquals("1.0", project.getVersion());
+        assertEquals("jar", project.getPackaging().id());
+        assertEquals("value", project.getModel().getProperties().get("key"));
+    }
+}
diff --git 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/SessionStubTest.java
similarity index 58%
copy from 
impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
copy to 
impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/SessionStubTest.java
index 91f5b4175e..624ffbe1ee 100644
--- 
a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ArtifactStub.java
+++ 
b/impl/maven-testing/src/test/java/org/apache/maven/api/plugin/testing/stubs/SessionStubTest.java
@@ -18,6 +18,22 @@
  */
 package org.apache.maven.api.plugin.testing.stubs;
 
-/** @deprecated Use {@link org.apache.maven.testing.plugin.stubs.ArtifactStub} 
instead */
-@Deprecated(since = "4.0.0-rc-6", forRemoval = true)
-public class ArtifactStub extends 
org.apache.maven.testing.plugin.stubs.ArtifactStub {}
+import java.util.Map;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class SessionStubTest {
+
+    @Test
+    @SuppressWarnings("removal")
+    void deprecatedConstructorsRemainSourceCompatible() {
+        SessionStub session = new SessionStub(Map.of("sys", "a"), 
Map.of("user", "b"), null);
+
+        assertEquals("a", session.getSystemProperties().get("sys"));
+        assertEquals("b", session.getUserProperties().get("user"));
+        assertEquals(
+                "c", new SessionStub(Map.of("user", 
"c")).getUserProperties().get("user"));
+    }
+}

Reply via email to