You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/06/09 10:55:02 UTC

svn commit: r782918 - in /camel/trunk/components/camel-http/src: main/java/org/apache/camel/component/http/HttpEndpoint.java test/java/org/apache/camel/component/http/HttpProxyTest.java

Author: davsclaus
Date: Tue Jun  9 08:55:02 2009
New Revision: 782918

URL: http://svn.apache.org/viewvc?rev=782918&view=rev
Log:
CAMEL-1687: camel-http now uses http proxy settings from java system properties. Thanks to Savas for patch.

Added:
    camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java   (with props)
Modified:
    camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java?rev=782918&r1=782917&r2=782918&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java Tue Jun  9 08:55:02 2009
@@ -18,7 +18,6 @@
 
 import java.net.URI;
 import java.net.URISyntaxException;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -33,15 +32,17 @@
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpConnectionManager;
 import org.apache.commons.httpclient.params.HttpClientParams;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
- * Represents a <a href="http://camel.apache.org/http.html">HTTP
- * endpoint</a>
+ * Represents a <a href="http://camel.apache.org/http.html">HTTP endpoint</a>
  *
  * @version $Revision$
  */
 public class HttpEndpoint extends DefaultPollingEndpoint implements HeaderFilterStrategyAware {
 
+    private static final transient Log LOG = LogFactory.getLog(HttpEndpoint.class);
     private HeaderFilterStrategy headerFilterStrategy = new HttpHeaderFilterStrategy();
     private HttpBinding binding;
     private HttpComponent component;
@@ -97,6 +98,19 @@
         if (configurer != null) {
             configurer.configureHttpClient(answer);
         }
+
+        // configure http proxy if defined as system property
+        // http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html
+        if (System.getProperty("http.proxyHost") != null && System.getProperty("http.proxyPort") != null) {
+            String host = System.getProperty("http.proxyHost");
+            int port = Integer.parseInt(System.getProperty("http.proxyPort"));
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Java System Property http.proxyHost and http.proxyPort detected. Using http proxy host: "
+                        + host + " port: " + port);
+            }
+            answer.getHostConfiguration().setProxy(host, port);
+        }
+
         return answer;
     }
 

Added: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java?rev=782918&view=auto
==============================================================================
--- camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java (added)
+++ camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java Tue Jun  9 08:55:02 2009
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.commons.httpclient.HttpClient;
+
+/**
+ * @version $Revision$
+ */
+public class HttpProxyTest extends ContextTestSupport {
+
+    public void testNoHttpProxyConfigured() throws Exception {
+        HttpEndpoint http = context.getEndpoint("http://www.google.com", HttpEndpoint.class);
+
+        HttpClient client = http.createHttpClient();
+        assertNull("No proxy configured yet", client.getHostConfiguration().getProxyHost());
+        assertEquals("No proxy configured yet", -1, client.getHostConfiguration().getProxyPort());
+    }
+
+    public void testHttpProxyConfigured() throws Exception {
+        HttpEndpoint http = context.getEndpoint("http://www.google.com", HttpEndpoint.class);
+
+        System.setProperty("http.proxyHost", "myproxy");
+        System.setProperty("http.proxyPort", "1234");
+
+        try {
+            HttpClient client = http.createHttpClient();
+            assertEquals("myproxy", client.getHostConfiguration().getProxyHost());
+            assertEquals(1234, client.getHostConfiguration().getProxyPort());
+        } finally {
+            System.clearProperty("http.proxyHost");
+            System.clearProperty("http.proxyPort");
+        }
+    }
+
+}

Propchange: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProxyTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date