diff options
author | Christian Halstrick <christian.halstrick@sap.com> | 2013-08-04 22:49:47 +0200 |
---|---|---|
committer | Christian Halstrick <christian.halstrick@sap.com> | 2014-02-18 21:04:10 +0100 |
commit | 38c4f35d8b911426e007716697b37d746740b788 (patch) | |
tree | 8c199a7fc9e2b65135cb388ddec588b212fa79fe /org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java | |
parent | f08fde3eebc2689210292d78db785f6ec52dc8ef (diff) | |
download | jgit-38c4f35d8b911426e007716697b37d746740b788.tar.gz jgit-38c4f35d8b911426e007716697b37d746740b788.zip |
Introduce an abstraction for HTTP connections
Previously all HTTP communication was done with the help of
java.net.HttpUrlConnection. In order to make JGit usable in environments
where the direct usage of such connections is not allowed but where the
environment provides other means to get network connections an
abstraction for connections is introduced. The idea is that new
implementations of this interface will be introduced which will not use
java.net.HttpUrlConnection but use e.g.
org.apache.client.http.HttpClient to provide network connections.
One example: certain cloud infrastructures don't allow that components
in the cloud communicate directly with HttpUrlConnection. Instead they
provide services where a component can ask for a connection (given a
symbolic name for the destination) and where the infrastructure returns
a preconfigured org.apache.http.client.HttpClient. In order to allow
JGit to be running in such environments we need the abstraction
introduced in this commit.
Change-Id: I3b06629f90a118bd284e55bb3f6465fe7d10463d
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java index c142bc23aa..5a64b458fa 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/HttpAuthTest.java @@ -45,7 +45,6 @@ package org.eclipse.jgit.transport; import static org.junit.Assert.fail; import java.io.IOException; -import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; @@ -53,6 +52,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.eclipse.jgit.transport.http.JDKHttpConnection; import org.junit.Test; public class HttpAuthTest { @@ -71,7 +71,7 @@ public class HttpAuthTest { private static String DIGEST = "Digest"; @Test - public void testHttpAuthScanResponse() throws MalformedURLException { + public void testHttpAuthScanResponse() { checkResponse(new String[] { basicHeader }, BASIC); checkResponse(new String[] { digestHeader }, DIGEST); checkResponse(new String[] { basicHeader, digestHeader }, DIGEST); @@ -83,10 +83,15 @@ public class HttpAuthTest { } private static void checkResponse(String[] headers, - String expectedAuthMethod) throws MalformedURLException { + String expectedAuthMethod) { - AuthHeadersResponse responce = new AuthHeadersResponse(headers); - HttpAuthMethod authMethod = HttpAuthMethod.scanResponse(responce); + AuthHeadersResponse response = null; + try { + response = new AuthHeadersResponse(headers); + } catch (IOException e) { + fail("Couldn't instantiate AuthHeadersResponse: " + e.toString()); + } + HttpAuthMethod authMethod = HttpAuthMethod.scanResponse(response); if (!expectedAuthMethod.equals(getAuthMethodName(authMethod))) { fail("Wrong authentication method: expected " + expectedAuthMethod @@ -98,21 +103,16 @@ public class HttpAuthTest { return authMethod.getClass().getSimpleName(); } - private static class AuthHeadersResponse extends HttpURLConnection { + private static class AuthHeadersResponse extends JDKHttpConnection { Map<String, List<String>> headerFields = new HashMap<String, List<String>>(); public AuthHeadersResponse(String[] authHeaders) - throws MalformedURLException { + throws MalformedURLException, IOException { super(new URL(URL_SAMPLE)); parseHeaders(authHeaders); } @Override - public void disconnect() { - fail("The disconnect method shouldn't be invoked"); - } - - @Override public boolean usingProxy() { return false; } |