[ 
https://issues.apache.org/jira/browse/MNG-7774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17719779#comment-17719779
 ] 

ASF GitHub Bot commented on MNG-7774:
-------------------------------------

cstamas commented on code in PR #1098:
URL: https://github.com/apache/maven/pull/1098#discussion_r1185906988


##########
maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java:
##########
@@ -364,6 +369,38 @@ public void testVersionStringWithoutAnsi() throws 
Exception {
         assertEquals(MessageUtils.stripAnsiCodes(versionOut), versionOut);
     }
 
+    @Test
+    public void testPropertiesInterpolation() throws Exception {
+        // Arrange
+        CliRequest request = new CliRequest(
+                new String[] {
+                    "-Dfoo=bar",
+                    "-DvalFound=s${foo}i",
+                    "-DvalNotFound=s${foz}i",
+                    "-DvalRootDirectory=${session.rootDirectory}/.mvn/foo",
+                    "-DvalTopDirectory=${session.topDirectory}/pom.xml",

Review Comment:
   Expressions HAVE BEEN (in this PR) backported, what you *really mean* is 
that 3.9.x does not expose them on MavenSession object, that is true. Still, 
the point of this PR is to make builds between 3.9.x and 4 permeable, "work 
with both". This PR as explained above, *does not back port everything*, just 
the ability to interpolate and these two "special" expressions used in 
interpolation.





> Maven config and command line interpolation
> -------------------------------------------
>
>                 Key: MNG-7774
>                 URL: https://issues.apache.org/jira/browse/MNG-7774
>             Project: Maven
>          Issue Type: Task
>          Components: Command Line
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 3.9.2
>
>
> Note: this issue "mildly follows" functionality done in Maven 4 as part of 
> MNG-7038 and MNG-6303, with partial implementation only (is not full 
> back-port), hence "mild introduction".
> Rationale: many new resolver features are akin to be able to store their 
> configuration and input along SCM tracked Maven project sources. Sadly, 
> currently this is not possible. The two issues targeting Maven4 (MNG-7038 and 
> MNG-6303) with introduction of session and project "topDirectory" and 
> "rootDirectory" properties solve this. Still, Maven 3.9.x does not need all 
> of this.
> So, idea is following:
>  * extend MavenCli to interpolate Maven arguments
>  * introduce two special properties {{session.rootDirectory}} and 
> {{session.topDirectory}} in interpolation. They are special, as they may not 
> be defined, and IF they are not defined, their use in Maven argument 
> interpolation causes error (Maven will not boot).
>  * limit the use of the two new properties to Maven CLI interpolation only. 
> This makes projects relying on Maven CLI interpolation "permeable" between 
> Maven 3.9.x and Maven 4, while all the whistle and bells (exposing this via 
> session or project) will be available in Maven 4 only.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to