[ 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)