Hi Michael,
Looks great!
With a new package, the doc will be important to help get developers
started.
The package-info.java should help a bit more getting started. The examples
in the HttpRequest are very informative, either the package-java should
show an
example or be more explicit that HttpRequest is the place to start.
RequestProcessor: +126 Unclosed {@code ...
The generated javadoc comes out with visible {@link...
java/net/package-info.java: "This API has been superseded by the newer
HTTP client API described in the previous section."
But there is no description in a previous section.
HttpClient has a debugPrint method without a description; it may be a
leftover from development and should be removed.
HttpClient.Builder should specify the default behavior if
authenticator(a) is not called.
Ditto cookieManager(m).
A general statement in each class or package about throwing NPE if a
parameter is null unless
otherwise specified might be cleaner than individual @throws clauses
RequestProcessor.onRequestStart: there is an @returns TODO that seems
to have been described above.
HttpResponse.BodyProcessor: If the flowController.accept is never
called, will it hang indefinitely
or will the timeout eventually force an error. An inadvertent
programming error (omission) should not
hang forever without any indication.
bufferpool: if the consumer bufferpool is never called, what happens to
the buffers? Are they GC'ed or leak?
The description of onResponseBodyStart returning a T that will read the
body is a bit vague.
I'm not sure what methods on T would be used to read the body or who
would call them.
None of these are show stoppers, but perhaps the easy ones can be done
before the push.
Tomorrow, I'll look more closely at the implementation.
Roger
On 2/4/2016 11:14 AM, Michael McMahon wrote:
Hi,
The following webrevs are for the initial implementation of JEP 110.
Most of it is in the jdk repository with some build configuration in
the top
level repo for putting this code in its own module (java.httpclient).
http://cr.openjdk.java.net/~michaelm/8087112/01/top/webrev/
http://cr.openjdk.java.net/~michaelm/8087112/01/jdk/webrev/
The HTTP/2 implementation will come later.
Thanks,
Michael.