You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/07/03 21:49:00 UTC
[jira] [Commented] (MNG-6401) Support proxy port interpolation in settings.xml
[ https://issues.apache.org/jira/browse/MNG-6401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17739736#comment-17739736 ]
ASF GitHub Bot commented on MNG-6401:
-------------------------------------
elharo commented on code in PR #1194:
URL: https://github.com/apache/maven/pull/1194#discussion_r1251298102
##########
api/maven-api-settings/src/main/mdo/settings.mdo:
##########
@@ -459,17 +459,19 @@
The <code><proxy></code> element contains informations required to a proxy settings.
]]></description>
<fields>
- <field>
- <name>active</name>
+ <field xml.tagName="active">
+ <name>activeString</name>
<version>1.0.0+</version>
<required>false</required>
<defaultValue>true</defaultValue>
<description>
<![CDATA[
Review Comment:
CDATA not needed here
##########
api/maven-api-settings/src/main/mdo/settings.mdo:
##########
@@ -502,15 +504,17 @@
</description>
<type>String</type>
</field>
- <field>
- <name>port</name>
+ <field xml.tagName="port">
+ <name>portString</name>
<version>1.0.0+</version>
<description>
<![CDATA[
Review Comment:
CDATA not needed here
##########
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>
+ < - if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
##########
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>
+ <![CDATA[
+ /**
+ * Indicates if this proxy is active or not.
+ * To allow interpolation of this field, this method lazily parses
+ * the {@link #getActiveString()} value as a boolean and defaults to {@code true}
+ * if not set.
+ *
+ * @return a boolean indicating whether this proxy is active or not
+ */
+ public boolean isActive() {
+ return (getActiveString() != null) ? Boolean.parseBoolean(getActiveString()) : true;
+ }
+
+ /**
+ * Returns the port to use for this proxy.
+ * To allow interpolation of this field, this method lazily parses
+ * the {@link #getPortString()} value as an integer and defaults to {@code 8080}
+ * if not set.
+ *
+ * @return an integer indicating the port to use for this proxy
+ * @throws NumberFormatException if the port string is not a valid integer
Review Comment:
This should happen when the port string is set, not later when the getter method is called
##########
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[
Review Comment:
CDATA not needed here
> 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)