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

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

gnodet commented on code in PR #1679:
URL: https://github.com/apache/maven/pull/1679#discussion_r1728899433


##########
maven-core/src/main/java/org/apache/maven/internal/aether/PropertyContributorExtender.java:
##########
@@ -50,13 +54,53 @@ class PropertyContributorExtender implements 
MavenExecutionRequestExtender {
     public void extend(MavenExecutionRequest mavenExecutionRequest) {
         Map<String, PropertyContributor> effectivePropertyContributors = 
lookup.lookupMap(PropertyContributor.class);
         if (!effectivePropertyContributors.isEmpty()) {
-            HashMap<String, String> userPropertiesMap = new HashMap<>((Map) 
mavenExecutionRequest.getUserProperties());
+            final Version mavenVersion = lookup.lookup(VersionParser.class)
+                    
.parseVersion(lookup.lookup(RuntimeInformation.class).getMavenVersion());
+            final Map<String, String> systemPropertiesMap =
+                    Map.copyOf((Map) 
mavenExecutionRequest.getSystemProperties());
+            final Map<String, String> userPropertiesMap = Map.copyOf((Map) 
mavenExecutionRequest.getUserProperties());
+            final ProtoSession protoSession = new ProtoSession() {
+                @Override
+                public Version getMavenVersion() {
+                    return mavenVersion;
+                }
+
+                @Override
+                public Map<String, String> getUserProperties() {
+                    return userPropertiesMap;
+                }
+
+                @Override
+                public Map<String, String> getSystemProperties() {
+                    return systemPropertiesMap;
+                }
+
+                @Override
+                public Path getTopDirectory() {
+                    return mavenExecutionRequest.getTopDirectory();
+                }
+
+                @Override
+                public Path getRootDirectory() {
+                    return mavenExecutionRequest.getRootDirectory();
+                }
+            };
+
+            final Properties newProperties = new Properties();
+
             for (PropertyContributor contributor : 
effectivePropertyContributors.values()) {
-                contributor.contribute(userPropertiesMap);
+                Map<String, String> contribution = 
contributor.contribute(protoSession);

Review Comment:
   A given contributor won't see properties added by previous contributors, is 
that what we want ?



##########
api/maven-api-core/src/main/java/org/apache/maven/api/ProtoSession.java:
##########
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.api;

Review Comment:
   Should it be moved to `org.apache.maven.api.spi` ?





> Provide more information to PropertyContributors
> ------------------------------------------------
>
>                 Key: MNG-8222
>                 URL: https://issues.apache.org/jira/browse/MNG-8222
>             Project: Maven
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 4.0.0-beta-3
>            Reporter: Tamas Cservenak
>            Priority: Major
>             Fix For: 4.0.0-beta-4
>
>
> The property contributor lacks a lot of "contextual" data. It would be better 
> if it could:
> * inspect "so far discovered user properties" -- this is OK, they are in the 
> passed in map
> * inspect "maven discovered Java System Properties" -- to not touch 
> System.getProperty method
> * inspect maybe things like topDirectory, cwd etc?



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

Reply via email to