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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1ced34a  [AMQ-6556] Support system property proxy settings for HTTP(S) 
client
1ced34a is described below

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

    [AMQ-6556] Support system property proxy settings for HTTP(S) client
    
    (cherry picked from commit 746a8398098fe4277008a62c5c82101a3c07cacd)
---
 .../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 f64f7a0..42ad435 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
@@ -414,4 +414,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 9f6774a..a837818 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