This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch activemq-5.15.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-5.15.x by this push:
     new 746a839  [AMQ-6556] Support system property proxy settings for HTTP(S) 
client
     new 47b4f9f  Merge pull request #277 from amarkevich/activemq-5.15.x
746a839 is described below

commit 746a8398098fe4277008a62c5c82101a3c07cacd
Author: amarkevich <[email protected]>
AuthorDate: Mon Feb 26 11:51:15 2018 +0300

    [AMQ-6556] Support system property proxy settings for HTTP(S) client
---
 .../transport/http/HttpClientTransport.java        |  6 ++++++
 .../transport/http/HttpTransportSupport.java       | 25 +++++++++++++++++-----
 .../transport/https/HttpsClientTransport.java      |  6 ++++++
 3 files changed, 32 insertions(+), 5 deletions(-)

diff --git 
a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java
 
b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java
index 2480daa..c4e8778 100644
--- 
a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java
+++ 
b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpClientTransport.java
@@ -417,4 +417,10 @@ public class HttpClientTransport extends 
HttpTransportSupport {
     public WireFormat getWireFormat() {
         return getTextWireFormat();
     }
+
+    @Override
+    protected String getSystemPropertyPrefix() {
+        return "http.";
+    }
+
 }
diff --git 
a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java
 
b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java
index d01ce25..6f4012d 100644
--- 
a/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java
+++ 
b/activemq-http/src/main/java/org/apache/activemq/transport/http/HttpTransportSupport.java
@@ -27,10 +27,16 @@ import org.apache.activemq.transport.util.TextWireFormat;
  *
  */
 public abstract class HttpTransportSupport extends TransportThreadSupport {
+    private static final int DEFAULT_PROXY_PORT = 8080;
+    private static final String PROPERTY_PROXY_HOST = "proxyHost";
+    private static final String PROPERTY_PROXY_PORT = "proxyPort";
+    private static final String PROPERTY_PROXY_USER = "proxyUser";
+    private static final String PROPERTY_PROXY_PASSWORD = "proxyPassword";
+
     private TextWireFormat textWireFormat;
     private URI remoteUrl;
     private String proxyHost;
-    private int proxyPort = 8080;
+    private Integer proxyPort;
     private String proxyUser;
     private String proxyPassword;
 
@@ -62,7 +68,7 @@ public abstract class HttpTransportSupport extends 
TransportThreadSupport {
     }
 
     public String getProxyHost() {
-        return proxyHost;
+        return proxyHost != null ? proxyHost : 
getSystemProperty(PROPERTY_PROXY_HOST);
     }
 
     public void setProxyHost(String proxyHost) {
@@ -70,7 +76,9 @@ public abstract class HttpTransportSupport extends 
TransportThreadSupport {
     }
 
     public int getProxyPort() {
-        return proxyPort;
+        return proxyPort != null ? proxyPort
+                : (getSystemProperty(PROPERTY_PROXY_PORT) != null
+                        ? 
Integer.parseInt(getSystemProperty(PROPERTY_PROXY_PORT)) : DEFAULT_PROXY_PORT);
     }
 
     public void setProxyPort(int proxyPort) {
@@ -78,7 +86,7 @@ public abstract class HttpTransportSupport extends 
TransportThreadSupport {
     }
 
     public String getProxyUser() {
-       return proxyUser;
+       return proxyUser != null ? proxyUser : 
getSystemProperty(PROPERTY_PROXY_USER);
     }
 
     public void setProxyUser(String proxyUser) {
@@ -86,10 +94,17 @@ public abstract class HttpTransportSupport extends 
TransportThreadSupport {
     }
 
     public String getProxyPassword() {
-       return proxyPassword;
+       return proxyPassword != null ? proxyPassword : 
getSystemProperty(PROPERTY_PROXY_PASSWORD);
     }
 
     public void setProxyPassword(String proxyPassword) {
        this.proxyPassword = proxyPassword;
     }
+
+    protected abstract String getSystemPropertyPrefix();
+
+    private String getSystemProperty(String propertyName) {
+        return System.getProperty(getSystemPropertyPrefix() + propertyName);
+    }
+
 }
diff --git 
a/activemq-http/src/main/java/org/apache/activemq/transport/https/HttpsClientTransport.java
 
b/activemq-http/src/main/java/org/apache/activemq/transport/https/HttpsClientTransport.java
index 2e432fc..112a564 100644
--- 
a/activemq-http/src/main/java/org/apache/activemq/transport/https/HttpsClientTransport.java
+++ 
b/activemq-http/src/main/java/org/apache/activemq/transport/https/HttpsClientTransport.java
@@ -75,4 +75,10 @@ public class HttpsClientTransport extends 
HttpClientTransport {
         }
 
     }
+
+    @Override
+    protected String getSystemPropertyPrefix() {
+        return "https.";
+    }
+
 }

Reply via email to