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

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

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


##########
maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java:
##########
@@ -1204,40 +1203,57 @@ void toolchains(CliRequest cliRequest) throws Exception 
{
                         "The specified user toolchains file does not exist: " 
+ userToolchainsFile);
             }
         } else {
-            userToolchainsFile = DEFAULT_USER_TOOLCHAINS_FILE;
+            String userToolchainsFileStr = 
cliRequest.getUserProperties().getProperty(Constants.MAVEN_USER_TOOLCHAINS);
+            if (userToolchainsFileStr != null) {
+                userToolchainsFile = new File(userToolchainsFileStr);
+            }
         }
 
-        File globalToolchainsFile;
+        File installationToolchainsFile = null;
 
-        if 
(cliRequest.commandLine.hasOption(CLIManager.ALTERNATE_GLOBAL_TOOLCHAINS)) {
-            globalToolchainsFile =
+        if 
(cliRequest.commandLine.hasOption(CLIManager.ALTERNATE_INSTALLATION_TOOLCHAINS))
 {
+            installationToolchainsFile =
+                    new 
File(cliRequest.commandLine.getOptionValue(CLIManager.ALTERNATE_INSTALLATION_TOOLCHAINS));
+            installationToolchainsFile = 
resolveFile(installationToolchainsFile, cliRequest.workingDirectory);
+
+            if (!installationToolchainsFile.isFile()) {
+                throw new FileNotFoundException(
+                        "The specified installation toolchains file does not 
exist: " + installationToolchainsFile);
+            }
+        } else if 
(cliRequest.commandLine.hasOption(CLIManager.ALTERNATE_GLOBAL_TOOLCHAINS)) {
+            installationToolchainsFile =
                     new 
File(cliRequest.commandLine.getOptionValue(CLIManager.ALTERNATE_GLOBAL_TOOLCHAINS));
-            globalToolchainsFile = resolveFile(globalToolchainsFile, 
cliRequest.workingDirectory);
+            installationToolchainsFile = 
resolveFile(installationToolchainsFile, cliRequest.workingDirectory);
 
-            if (!globalToolchainsFile.isFile()) {
+            if (!installationToolchainsFile.isFile()) {
                 throw new FileNotFoundException(
-                        "The specified global toolchains file does not exist: 
" + globalToolchainsFile);
+                        "The specified installation toolchains file does not 
exist: " + installationToolchainsFile);
             }
         } else {
-            globalToolchainsFile = DEFAULT_GLOBAL_TOOLCHAINS_FILE;
+            String installationToolchainsFileStr =
+                    
cliRequest.getUserProperties().getProperty(Constants.MAVEN_INSTALLATION_TOOLCHAINS);
+            if (installationToolchainsFileStr != null) {
+                installationToolchainsFile = new 
File(installationToolchainsFileStr);
+                installationToolchainsFile = 
resolveFile(installationToolchainsFile, cliRequest.workingDirectory);
+            }
         }
 
-        cliRequest.request.setGlobalToolchainsFile(globalToolchainsFile);
+        
cliRequest.request.setInstallationToolchainsFile(installationToolchainsFile);
         cliRequest.request.setUserToolchainsFile(userToolchainsFile);
 
         DefaultToolchainsBuildingRequest toolchainsRequest = new 
DefaultToolchainsBuildingRequest();
-        if (globalToolchainsFile.isFile()) {
-            toolchainsRequest.setGlobalToolchainsSource(new 
FileSource(globalToolchainsFile));
+        if (installationToolchainsFile != null && 
installationToolchainsFile.isFile()) {
+            toolchainsRequest.setGlobalToolchainsSource(new 
FileSource(installationToolchainsFile));
         }
-        if (userToolchainsFile.isFile()) {
+        if (userToolchainsFile != null && userToolchainsFile.isFile()) {
             toolchainsRequest.setUserToolchainsSource(new 
FileSource(userToolchainsFile));
         }
 
         eventSpyDispatcher.onEvent(toolchainsRequest);
 
         slf4jLogger.debug(
-                "Reading global toolchains from '{}'",
-                getLocation(toolchainsRequest.getGlobalToolchainsSource(), 
globalToolchainsFile));
+                "Reading installation toolchains from '{}'",
+                getLocation(toolchainsRequest.getGlobalToolchainsSource(), 
installationToolchainsFile));

Review Comment:
   I haven't touched the Maven 3 API at this point.   When we consider the 
Maven 4 api stable and complete enough, I think we'll have to deprecate the 
whole Maven 3 API, so I would think this will be part of that change.





> Provide a single entry point for configuration
> ----------------------------------------------
>
>                 Key: MNG-7914
>                 URL: https://issues.apache.org/jira/browse/MNG-7914
>             Project: Maven
>          Issue Type: New Feature
>            Reporter: Guillaume Nodet
>            Priority: Major
>             Fix For: 4.0.x-candidate
>
>
> Looking at MNG-7772, this should not require any code change, but it's all 
> about configuration.
> I propose to load / interpolate the following files:
>  * {{${maven.home}/conf/maven.user.properties}}
>  * {{${maven.home}/conf/maven.system.properties}}
> Those files would be used to load additional user properties and system 
> properties for Maven.  In addition to the simple interpolation mechanism, we 
> should provide two enhancements using special keys {{{}$\{includes{}}}} and 
> {{{}$\{optionals{}}}} which would be used to load additional referenced 
> configuration files such as:
> {{    ${optionals} = ${user.home}/.m2/maven.user.properties, 
> ${session.rootDirectory}/.mvn/maven.user.properties}}
> Being loaded early when Maven is loaded, those files could reference 
> directories to load extensions from:
>   {{{}maven.core.extensions.directories = 
> ${session.rootDirectory}/.mvn/extensions.xml,{}}}{{{}${user.home}/.m2/extensions.xml,${maven.home}/extensions.xml{}}}
>  
> In various places, the maven code could be simplified and offer more 
> configuration points at the same time.



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

Reply via email to