This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository rest-gradle-plugin.

commit 51cc535a99daffcd63e8359c11be63bb7e57309e
Author: Andrea Rossi <andrea.ro...@here.com>
Date:   Wed Aug 6 11:38:16 2014 +0200

    Adds support for proxies
    
    Now the rest task supports proxies, using the standard java system 
properties
    Adds unit test to verify that the proxy gets set
---
 .../groovy/org/_10ne/gradle/rest/RestTask.groovy   | 12 ++++++++++
 .../org/_10ne/gradle/rest/RestTaskSpec.groovy      | 27 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy 
b/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy
index ddae22c..adb98bd 100644
--- a/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy
+++ b/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy
@@ -55,6 +55,15 @@ class RestTask extends DefaultTask {
         client = new RESTClient()
     }
 
+    void configureProxy(String protocol) {
+        String proxyHost = System.getProperty(protocol.toLowerCase() + 
".proxyHost", "")
+        int proxyPort = System.getProperty(protocol.toLowerCase() + 
".proxyPort", "0") as int
+        if (proxyHost.length() > 0 && proxyPort > 0) {
+            println "Using " + protocol.toUpperCase() + " proxy: " + proxyHost 
+ ":" + proxyPort
+            client.setProxy(proxyHost, proxyPort, protocol)
+        }
+    }
+
     @TaskAction
     void executeRequest() {
         if (!uri || StringUtils.isBlank(uri)) {
@@ -69,6 +78,9 @@ class RestTask extends DefaultTask {
             client.auth.basic(username, password)
         }
 
+        configureProxy('http')
+        configureProxy('https')
+
         if (requestHeaders instanceof Map) {
             client.headers.putAll(requestHeaders);
         }
diff --git a/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy 
b/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy
index 5647487..9f750eb 100644
--- a/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy
+++ b/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy
@@ -142,4 +142,31 @@ class RestTaskSpec extends Specification {
         }
         1 * mockResponse.getData() >> { 'somedata' }
     }
+
+    def 'Configure and execute a request using a proxy'() {
+        setup:
+        System.setProperty('http.proxyHost', "www.abc.com")
+        System.setProperty('http.proxyPort', "8080")
+        Task task = project.tasks.create(name: 'request', type: RestTask) {
+            httpMethod = 'post'
+            uri = 'bob.com'
+            requestContentType = 'requestContentType'
+            requestBody = 'requestBody'
+            contentType = 'contentType'
+        }
+        def mockClient = Mock(RESTClient)
+        task.client = mockClient
+
+        def mockResponse = Mock(HttpResponseDecorator)
+
+        when:
+        task.executeRequest()
+
+        then:
+        1 * mockClient.setUri('bob.com')
+        1 * mockClient.setProxy("www.abc.com", 8080, "http")
+        1 * mockClient.post(_ as Map) >> { Map params ->
+            mockResponse
+        }
+    }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-java/rest-gradle-plugin.git

_______________________________________________
pkg-java-commits mailing list
pkg-java-comm...@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

Reply via email to