Commit Graph

1236 Commits

Author SHA1 Message Date
Jesse McConnell c3ee0711ca [maven-release-plugin] prepare for next development iteration 2014-06-09 13:37:54 -05:00
Jesse McConnell 06b494eeac [maven-release-plugin] prepare release jetty-9.2.1.v20140609 2014-06-09 13:37:49 -05:00
Jesse McConnell 2e859e4ae2 [maven-release-plugin] prepare for next development iteration 2014-05-26 12:04:15 -05:00
Jesse McConnell 71ad2114c5 [maven-release-plugin] prepare release jetty-9.2.0.v20140526 2014-05-26 12:04:08 -05:00
Jesse McConnell d59dbe936b [maven-release-plugin] prepare for next development iteration 2014-05-23 09:59:19 -05:00
Jesse McConnell edc7646a4c [maven-release-plugin] prepare release jetty-9.2.0.v20140523 2014-05-23 09:59:13 -05:00
Simone Bordet 7918a58c71 Using Callback.Adapter.INSTANCE to avoid unneeded allocations. 2014-05-19 18:49:17 +02:00
Simone Bordet d75b9177c5 432939 - Jetty Client ContentResponse should have methods such as getContentType() and getMediaType().
Introduced ContentResponse.getMediaType() and ContentResponse .getEncoding(),
as well as BufferingResponseListener.getMediaType() to make the media
type and the encoding available to applications.
2014-05-15 10:58:49 +02:00
Simone Bordet b603964bb6 433089 - Client should provide Request.accept() method, like JAX-RS 2.0 Invocation.Builder.accept(). 2014-05-15 10:23:24 +02:00
Simone Bordet fa51281546 Avoided allocation of rarely used containers. 2014-05-15 09:59:31 +02:00
Simone Bordet eb1900d10b 428966 - Per-request cookie support. 2014-05-15 09:57:20 +02:00
Simone Bordet 660c05d399 URLEncoding also parameter names. 2014-05-15 09:09:41 +02:00
Simone Bordet c322ed4b90 419972 - Support sending forms (application/x-www-form-urlencoded).
Implemented introducing HttpClient.FORM() method and
FormContentProvider, based on Fields.
2014-05-14 23:54:26 +02:00
Simone Bordet bf7ab5d326 420368 - Default content types for ContentProviders.
Introduced ContentProvider.Typed to specify a content type along with
the content.
2014-05-14 23:54:25 +02:00
Simone Bordet be3848a371 433689 - Evict old HttpDestinations from HttpClient. 2014-05-14 11:34:34 +02:00
Simone Bordet a803465551 Invalidating the content decoders in case of Iterator.remove(). 2014-05-14 10:28:45 +02:00
Simone Bordet 521aa1d566 Improved Javadocs. 2014-05-14 09:58:10 +02:00
Simone Bordet 20dbde165e 434578 - Complete listener not called if redirected to an invalid URI.
Fixed by catching the exception and failing properly the redirect.
2014-05-11 11:22:39 +02:00
Simone Bordet d92ac8062b Avoid IllegalStateException in case of abort concurrent to header
generation.
2014-05-11 11:21:11 +02:00
Simone Bordet 0e4a903764 Removed deprecated getConversationID() method. 2014-05-11 10:14:03 +02:00
Greg Wilkins 51c5a4c833 425421 ContainerLifeCycle does not start added beans in started state 2014-05-05 14:53:53 +02:00
Simone Bordet c4b5e3d3d7 Introduced CompletableCallback to handle asynchronous content on clients. 2014-05-04 23:14:45 +02:00
Simone Bordet 9b388750fa 433916 - HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
Fixed by properly checking the HTTP version and whether the
Connection: keep-alive header is present.
2014-05-04 19:42:22 +02:00
Simone Bordet f628241875 433916 - HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
Fixed by properly checking the HTTP version and whether the
Connection: keep-alive header is present.
2014-05-04 16:03:26 +02:00
Simone Bordet a1d18a157d Added onReadFailure() callback to allow subclasses to perform actions
in case of read failures.
2014-05-02 22:45:56 +02:00
Simone Bordet 43454ebd0a Merged branch 'master' into '431642'. 2014-04-30 15:34:54 +02:00
Simone Bordet 906dc83691 431642 - Implement ProxyServlet using Servlet 3.1 async I/O.
Implemented correctly AsyncProxyServlet, tests passing.
2014-04-30 15:34:30 +02:00
Greg Wilkins 1c97fd3c42 433692 improved buffer resizing 2014-04-30 11:57:50 +02:00
Greg Wilkins 2e261b75d6 433692 improved buffer resizing 2014-04-29 20:36:13 +02:00
Simone Bordet ca67a9e10d Merged branch 'master' into '431642'. 2014-04-29 15:59:23 +02:00
Simone Bordet b4d1060e88 Avoid to null out the cookieStore field in doStop(), to prevent random NPEs while stopping. 2014-04-29 15:15:55 +02:00
Simone Bordet aeb27cd461 431642 - Implement ProxyServlet using Servlet 3.1 async I/O.
Intermediate commit that implements asynchronous content in HttpClient,
for the HTTP protocol, passing the tests.

This work needs to be extended to FCGI and SPDY and finally implement
the asynchronous proxy servlet.
2014-04-19 12:36:15 +02:00
Simone Bordet 04f4e6fb5b Merged branch 'master' into '431642'. 2014-04-18 15:08:53 +02:00
Simone Bordet f2e2eec4d5 Merged branch 'jetty-9.1.x' into 'master'. 2014-04-15 09:04:20 +02:00
Simone Bordet 361d8e5bd2 432528 - IllegalStateException when using DeferredContentProvider.
Fixed by using the correct idiom for calling the IteratingCallback.
2014-04-15 09:03:30 +02:00
Simone Bordet d6e538a9d2 Avoid duplicating existing headers when copying requests. 2014-04-15 09:03:30 +02:00
Simone Bordet 3717115059 Merged branch 'jetty-9.1.x' into 'master'. 2014-04-11 17:02:26 +02:00
Simone Bordet 5eeda38f0a 432270 - Slow requests with response content delimited by EOF fail.
Fixed also in the FastCGI module.
2014-04-11 16:18:38 +02:00
Simone Bordet 4975cae881 Further progress on 431642 (async proxy servlet). 2014-04-11 09:45:21 +02:00
Simone Bordet aebab6919c Improved IllegalStateException reporting. 2014-04-10 09:04:40 +02:00
Simone Bordet dfa2d05bcc 432270 - Slow requests with response content delimited by EOF fail.
Better handling of the idle case, and closing the connection only
if the response can be failed.
2014-04-10 09:04:11 +02:00
Simone Bordet 74d66a87f6 Made the test more reliable. 2014-04-10 09:03:19 +02:00
Simone Bordet 3cd7dfd445 432270 - Slow requests with response content delimited by EOF fail.
Fixed by using a flag to determine the need to close the connection,
and by closing the connection only at exchange termination.
2014-04-10 09:00:17 +02:00
Simone Bordet e3662a9b23 432145 - Pending request is not failed when HttpClient is stopped.
Fixed by fixing the code in close() to also abort pending exchanges.
Reviewed for HTTP, FastCGI and SPDY transports.
2014-04-10 08:59:30 +02:00
Greg Wilkins 0e458c80f4 reverted version to SNAPSHOT 2014-04-10 16:37:25 +10:00
Simone Bordet 44fe5daa69 Restored proper logging level. 2014-04-09 18:33:23 +02:00
Simone Bordet 7e3c7f3588 Temporary commit to understand why HttpReceiverOverHTTPTest.test_Receive_GZIPResponseContent_Fragmented() fails.
To be reverted.
2014-04-09 01:33:20 +02:00
Simone Bordet a8de18379c Improved IllegalStateException reporting. 2014-04-09 00:08:30 +02:00
Simone Bordet 5f8513e67e 432270 - Slow requests with response content delimited by EOF fail.
Better handling of the idle case, and closing the connection only
if the response can be failed.
2014-04-08 17:38:04 +02:00
Simone Bordet dd8120294d Made the test more reliable. 2014-04-08 13:57:55 +02:00
Simone Bordet 2e7df0e16a 432270 - Slow requests with response content delimited by EOF fail.
Fixed by using a flag to determine the need to close the connection,
and by closing the connection only at exchange termination.
2014-04-08 13:57:27 +02:00
Simone Bordet 2897027f53 Merged branch 'master' into 'jetty-9.2.x'. 2014-04-07 17:51:23 +02:00
Simone Bordet cc0775133e 432145 - Pending request is not failed when HttpClient is stopped.
Fixed by fixing the code in close() to also abort pending exchanges.
Reviewed for HTTP, FastCGI and SPDY transports.
2014-04-07 17:39:29 +02:00
Simone Bordet b135920bfc Restored HttpSender tests. 2014-04-07 17:39:29 +02:00
Simone Bordet e56a76ef50 Restored HttpReceiver tests. 2014-04-07 17:39:28 +02:00
Greg Wilkins 0a748205f0 432122 ignore frequently failing test 2014-04-07 18:00:50 +10:00
Greg Wilkins 64e11bc8e8 reverted version to 9.1.x pending merge of 9.2 branch 2014-04-07 12:52:43 +10:00
Jesse McConnell dbb938ac71 [maven-release-plugin] prepare for next development iteration 2014-04-02 10:55:29 -05:00
Jesse McConnell c616ece6c7 [maven-release-plugin] prepare release jetty-9.1.4.v20140401 2014-04-02 10:55:21 -05:00
Simone Bordet a96d7c388c Initial implementation of 431642 (async proxy servlet). 2014-04-01 15:45:52 +02:00
Greg Wilkins 81e14cf59d tests fail with new ISP? 2014-03-31 13:42:22 +11:00
Greg Wilkins c5e1e249e7 set version for 9.2.x 2014-03-31 11:35:06 +11:00
Greg Wilkins 28445fc629 Merge remote-tracking branch 'origin/master' into jetty-9-alpn 2014-03-31 09:59:52 +11:00
Simone Bordet 1089a33578 Fixed imports referencing JUnit 3 and old matcher libraries. 2014-03-27 15:34:48 +01:00
Joakim Erdfelt 6cba8ee375 Sprinkling in some test timeouts for the Java 8 build 2014-03-25 10:43:38 -07:00
Simone Bordet cda4af3ec9 431103 - Complete listener not called if request times out before processing exchange.
Fixed by forcing the abort of the exchange in [Pooling|Multiplex]HttpDestination.
2014-03-25 18:18:14 +01:00
Simone Bordet 382bfebcae Removed code that should never run, and replaced it wil IllegalStateException. 2014-03-22 14:49:00 +01:00
Simone Bordet 565d17dc8c 430808 - OutputStreamContentProvider violates OutputStream contract.
Fixed OutputStreamContentProvider to perform blocking write() calls and
implemented OutputStream.flush().
HttpSender now notifies the ContentProvider iterator of write completion
and if it implements Callback.
This is used in DeferredContentProvider to provide a blocking flush()
functionality.
2014-03-21 21:15:31 +01:00
Simone Bordet 5c0aae2f12 Removed unused field in ResponseNotifier.
Catching Throwable in RequestNotifier and ResponseNotifier when
notifying listeners.
2014-03-21 21:15:31 +01:00
Jesse McConnell 0ec0d452e9 [maven-release-plugin] prepare for next development iteration 2014-03-07 09:10:08 -06:00
Jesse McConnell 1e555567a9 [maven-release-plugin] prepare release jetty-9.1.3.v20140225 2014-03-07 09:10:08 -06:00
Simone Bordet 3e52b60452 428266 - HttpRequest mangles URI query string.
Now raw query string is preserved.
2014-02-21 16:24:52 +01:00
Simone Bordet 7db67ff58f Removed @SuppressWarnings("ForLoopReplaceableByForEach") because
it is a non standard warning not treated by the compiler but only
by IDEs. Relevant lines have comments in any case.
2014-02-21 14:50:45 +01:00
Jesse McConnell eb0aea46ce set versions.txt file to new version and fix mistaken developmentVersion 2014-02-10 13:48:29 -06:00
Jesse McConnell f3d38dfb15 [maven-release-plugin] prepare for next development iteration 2014-02-10 11:17:14 -06:00
Jesse McConnell 8f6cbc9111 [maven-release-plugin] prepare release jetty-9.1.2.v20140210 2014-02-10 11:17:07 -06:00
Simone Bordet 9356ab46da Made test more robust.
The check for the connection being closed may fail spuriously because
the notification of CompleteListener happens before the connection is
closed.
2014-02-06 11:56:25 +01:00
Simone Bordet f147362915 427512 - ReadPendingException in case of HTTP Proxy tunnelling.
Fixed by marking the old HttpConnection as "soft closed", that is
make it so that isClosed() returns true but the underlying EndPoint
is not closed.
This allows the HttpReceiver to skip the registration for fill
interest, so that the ReadPendingException is not thrown.
2014-02-05 21:30:06 +01:00
Simone Bordet cbdfd87d78 426870 - HTTP 1.0 Request with Connection: keep-alive and response
content hangs.

Fixed HttpGenerator to stay in the EOF_CONTENT mode if such case is
detected (while before it was moving to NO_CONTENT mode).
By staying in EOF_CONTENT mode the generator is made non-persistent
and eventually the connection is closed, signaling the end-of-content
to the client.
2014-01-29 11:20:00 +01:00
Simone Bordet 99b5b61b0b Simplified handling of "Connection: close" response header. 2014-01-14 22:51:18 +01:00
Jesse McConnell b82ec6e668 [maven-release-plugin] prepare for next development iteration 2014-01-08 16:47:09 -06:00
Jesse McConnell b99623a21d [maven-release-plugin] prepare release jetty-9.1.1.v20140108 2014-01-08 16:47:01 -06:00
Simone Bordet 8720fb213c 425043 - Track whether pools are used correctly.
Introduced LeakDetector and utility classes LeakTrackingConnectionPool
and LeakTrackingByteBufferPool to track resource pool leakages.

Fixed ConnectionPool to be more precise in closing connections when
release() cannot recycle the connection.

Fixed a leak in server's HttpConnection in case a request arrives with
the Connection: close header: a ByteBuffer was allocated but never
released.
2014-01-07 19:44:29 +01:00
Simone Bordet 6cb93e026f Cosmetics. 2014-01-07 19:44:29 +01:00
Simone Bordet 69187e117d Added missing call to super.close(). 2014-01-07 19:44:29 +01:00
Simone Bordet 4722ac1720 Improved semantic of close() method, now executed only once. 2014-01-07 19:44:29 +01:00
Simone Bordet e94ff7db9c 424743 - Verify abort behavior in case the total timeout expires
before the connect timeout.

The changes to fix this issue uncovered problems in the HttpSender
state machine.
In particular, the SenderState is now defining more states that
depend on deferred content, and on handling of 100 Continue responses.

The refactoring also highlighted the fact that there was no need to
keep HttpConversation objects in a Map in HttpClient: they are now
only referenced by the HttpRequest.
With this change, Request.getConversationID() has been deprecated.

Also fixed a number of tests to make them more reliable.
2014-01-05 15:29:43 +01:00
Joakim Erdfelt a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07:00
Simone Bordet 330e7f87d7 Removed check on the HttpSender.content field, that could lead to
NullPointerExceptions.

Checking whether the content was last and then acting was not atomic,
and the action being executed is designed to be run concurrently,
so the check was not needed.
2013-12-20 13:08:26 +01:00
Simone Bordet 8d621a9331 424043 - IteratingCallback Idle race.
A few renamings and fixes to avoid IllegalStateExceptions.
2013-12-15 23:51:04 +01:00
Simone Bordet 41fc2b8f87 424043 - IteratingCallback Idle race.
Renamed Next enum to Action, and renamed some constant of the State
enum to avoid confusion with the Action enum.

Simplified succeeded() and failed(Throwable) code,
covering also cases not covered before.

Fixed case SCHEDULED in succeeded() that was returning in case the
compareAndSet failed.

Fixed race in perform(), where 2 threads may execute concurrently
after having returned from process().

Vastly improved javadocs and comments.
2013-12-15 00:47:55 +01:00
Greg Wilkins 7141483356 424043 - IteratingCallback Idle race 2013-12-14 09:14:12 +11:00
Simone Bordet 5bbdbadec7 421795 - ContentProvider should have a method to release resources.
Implemented close of the request content based on the fact that the
Iterator returned by the content provider implements Closeable.
2013-12-13 18:47:38 +01:00
Simone Bordet b0c275837b 421794 - Iterator from InputStreamProvider is not implemented properly.
Now the iterator contract is better respected.
2013-12-13 16:32:14 +01:00
Simone Bordet 6473bbc2b6 424014 - PathContentProvider does not close its internal
SeekableByteChannel.

Fixed by closing the channel when it has been fully read and in case
of exceptions.
2013-12-13 14:27:13 +01:00
Simone Bordet 125cfe7e71 419911 - Empty chunk causes ArrayIndexOutOfBoundsException in
InputStreamResponseListener.

Fixed by adding relevant checks for zero-length content,
and not notifying listeners in such case.
2013-12-11 16:02:14 +01:00
Simone Bordet f2cc5295df 422264 - OutputStreamContentProvider does not work with Basic
Authentication.

Improved exception message in case of reuse of the same instance in
multiple requests.
2013-12-11 15:24:52 +01:00
Simone Bordet 6f87a9b995 Added test that verifies that the host header is correctly
overwritten by a user-provided value.
2013-12-10 16:59:54 +01:00
Greg Wilkins 1eb2997efd 421697 - IteratingCallback improvements
avoid wrapping writeCallback
Idle state added to IteratingCallback for SPDY
2013-11-21 14:52:39 +11:00
Joakim Erdfelt 9172d6115b [maven-release-plugin] prepare for next development iteration 2013-11-15 16:58:44 -07:00