Closed GoogleCodeExporter closed 9 years ago
Let's not add a dependency from the pre-existing OAuth library classes to any
new .jars. Applications that don't need gzip decompression must not be
required to
add anything to their classpath.
Ideally, this feature will be available in all subclasses of OAuthClient.
Could
they share code, to implement it? A relevant question is whether the
underlying
HTTP implementations (the JRE, HttpClient 3 and HttpComponents 4) have built-in
support for decompression.
Original comment by jmkrist...@gmail.com
on 5 Nov 2008 at 5:19
To support HttpClient 4, I have written a request interceptor and a response
interceptor.
I am attaching 4 files that enable Gzip support in
net.oauth.client.httpclient4.OAuthHttpClient
HttpClient 3 lacks the "interceptor" feature in HttpClient 4. This makes Gzip
support less straightforward in the HttpClient 3 codebase.
I don't have any personal interest in the HttpClient 3 OAuth classes but I can
look
at adding Gzip support if others express interest.
Original comment by sean%sea...@gtempaccount.com
on 5 Nov 2008 at 10:36
Attachments:
HttpURLConnection and Apache HttpClient version 3 don't have built-in support
for
decompression either, I find.
I'm going to refactor OAuthClient and its subclasses, to separate OAuth from
HTTP.
This is needed to support Content-Encoding and other headers in a uniform way,
for
all three underlying HTTP libraries. As part of this work, I intend to create
a new
class that models an HTTP message (distinct from an OAuth message).
Original comment by jmkrist...@gmail.com
on 7 Nov 2008 at 5:21
Implemented in -r728.
Original comment by jmkrist...@gmail.com
on 13 Nov 2008 at 5:13
Thanks! I just ran "svn update" and "mvn clean package" in my local workspce.
I am seeing compilation errors in core/src/test:
[INFO] Compilation failure
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[30,36]
cannot find symbol
symbol : class ExcerptInputStream
location: class net.oauth.client.OAuthClient
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/signature/Ec
ho.java:[65,35]
cannot find symbol
symbol : method getContentType()
location: class net.oauth.OAuthMessage
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/signature/Ec
ho.java:[66,41]
cannot find symbol
symbol : method getContentCharset()
location: class net.oauth.OAuthMessage
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[55,58]
cannot find symbol
symbol : variable RESPONSE_HEADERS
location: class net.oauth.OAuthProblemException
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[119,64]
cannot find symbol
symbol : method getContentCharset()
location: class net.oauth.OAuthMessage
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[120,58]
cannot find symbol
symbol : method getContentType()
location: class net.oauth.OAuthMessage
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[210,59]
cannot find symbol
symbol : method getContentCharset()
location: class net.oauth.client.OAuthClientTest.MessageWithBody
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[213,9]
method does not override a method from its superclass
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[219,22]
getHeader(java.lang.String) in net.oauth.client.OAuthClientTest.MessageWithBody
cannot override getHeader(java.lang.String) in net.oauth.OAuthMessage;
overridden
method is final
/foobar/Documents/workspace/oauth-java/core/src/test/java/net/oauth/client/OAuth
ClientTest.java:[227,47]
getHeaders() in net.oauth.client.OAuthClientTest.MessageWithBody cannot override
getHeaders() in net.oauth.OAuthMessage; overridden method is final
Original comment by sean%sea...@gtempaccount.com
on 13 Nov 2008 at 5:42
The compile errors were due to a problem in my local workspace. I replaced my
local
files with the trunk code and everything compiles.
mvn clean package
Thanks John!
Original comment by sean%sea...@gtempaccount.com
on 13 Nov 2008 at 5:55
I just tested HTTP gzip support with Plaxo's PortableContacts service. It
works great.
OAuthConsumer c = new OAuthConsumer(
oauthCallBackUrl,
consumerToken.getPublicToken(),
consumerToken.getSecret(),
getOAuthServiceProvider());
c.setProperty(OAuthClient.ACCEPT_ENCODING, "gzip, deflate");
I am using this feature in the jpoco project, http://code.google.com/p/jpoco
Great work John!
Original comment by sean%sea...@gtempaccount.com
on 13 Nov 2008 at 5:53
A slightly better idiom is:
c.setProperty(OAuthClient.ACCEPT_ENCODING, HttpMessageDecoder.ACCEPTED);
Incidentally, net.oauth.ConsumerProperties provides a convenient way to
construct a
Consumer from a resource or Properties object.
Original comment by jmkrist...@gmail.com
on 13 Nov 2008 at 6:17
Original issue reported on code.google.com by
sean%sea...@gtempaccount.com
on 4 Nov 2008 at 5:41