[ https://issues.apache.org/jira/browse/MNG-6401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17740264#comment-17740264 ]
ASF GitHub Bot commented on MNG-6401: ------------------------------------- gnodet commented on code in PR #1194: URL: https://github.com/apache/maven/pull/1194#discussion_r1253281717 ########## api/maven-api-settings/src/main/mdo/settings.mdo: ########## @@ -535,6 +539,62 @@ <type>String</type> </field> </fields> + <codeSegments> + <codeSegment> + <version>1.0.0/1.3.0</version> + <code> + <![CDATA[ + public boolean isActive() { + return (getActiveString() != null) ? Boolean.parseBoolean(getActiveString()) : true; + } + + public void setActive(boolean active) { + setActiveString(String.valueOf(active)); + } + + public int getPort() { + return (getPortString() != null) ? Integer.parseInt(getPortString()) : 8080; + } + + public void setPort(int port) { + setPortString(String.valueOf(port)); + } + ]]> + </code> + </codeSegment> + <codeSegment> + <version>2.0.0+</version> + <code> + <. So I'll abstain from any semantic validation, but I'll add some code to ensure that it can be parsed as an integer. > Support proxy port interpolation in settings.xml > ------------------------------------------------ > > Key: MNG-6401 > URL: https://issues.apache.org/jira/browse/MNG-6401 > Project: Maven > Issue Type: New Feature > Components: Bootstrap & Build, Settings > Affects Versions: 3.0, 3.5.3 > Reporter: KATADA Junya > Assignee: Guillaume Nodet > Priority: Minor > Fix For: 4.0.0-alpha-8 > > > If you use a property in proxy port of settings.xml, the property is not > replaced and the port number is "0" instead of property value. > My minimal demo about this problem is > [here|https://github.com/jkatada/maven-property-demo]. > In my demo, export two environment variables as follows. > {code} > export MAVEN_PROXY_HOST_STRING=proxy.foo.com > export MAVEN_PROXY_PORT_INT=18080 > {code} > These variables are used in settings.xml for proxy settings. > {code:xml} > <proxy> > <id>my_proxy</id> > <active>true</active> > <protocol>http</protocol> > <host>${env.MAVEN_PROXY_HOST_STRING}</host> > <port>${env.MAVEN_PROXY_PORT_INT}</port> > <nonProxyHosts>local.net|some.host.com</nonProxyHosts> > </proxy> > {code} > Execute maven-help-plugin to show effective settings.xml. > {code} > mvn help:effective-settings -X > {code} > The result is as follows. > {code:xml} > <proxy> > <port>0</port> > <host>proxy.foo.com</host> > <nonProxyHosts>local.net|some.host.com</nonProxyHosts> > <id>my_proxy</id> > </proxy> > {code} > `*${env.MAVEN_PROXY_HOST_STRING}*` is replaced with `*proxy.foo.com*`, > but `*${env.MAVEN_PROXY_PORT_INT}*` is not replaced with `*18080*`. > I found the following WARNING message in console. > {code:java} > [WARNING] Some problems were encountered while building the effective settings > [WARNING] Unable to parse element 'port', must be an integer (position: > END_TAG seen ...<port>${env.MAVEN_PROXY_PORT_INT}</port>... @12:47) caused > by: java.lang.NumberFormatException: For input string: > "${env.MAVEN_PROXY_PORT_INT}" @ /root/.m2/settings.xml, line 12, column 47 > {code} > I think that the cause of this problem is to parse settings.xml before > interpolation. > -- This message was sent by Atlassian Jira (v8.20.10#820010)