Commit Graph

1135 Commits

Author SHA1 Message Date
Greg Wilkins 7584488702 javadoc 2014-08-21 09:43:35 +10:00
Simone Bordet 3ace246cff Catching Throwable instead of Exception. 2014-08-08 18:16:56 +02:00
Greg Wilkins eaf374fa58 refactored Dispatcher for new HttpURI 2014-07-25 17:28:35 +10:00
Greg Wilkins fa3d7d0f7e Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-servlet/src/test/java/org/eclipse/jetty/servlet/AsyncContextDispatchWithQueryStrings.java
2014-07-23 16:53:13 +10:00
Greg Wilkins 3a6879d3e8 expanded tabs in indents 2014-07-23 16:49:05 +10:00
Simone Bordet 467773dbdf Merged branch 'master' into 'jetty-http2'. 2014-07-22 21:14:46 +02:00
Simone Bordet dd914db3cf Reorganized GZIP tests. 2014-07-22 20:55:18 +02:00
Simone Bordet 52172fb3c4 440038 - Content decoding may fail.
Properly looping around the decoding step to ensure that the encoded
content is fully consumed.
2014-07-21 19:21:44 +02:00
Simone Bordet 816b85ea4d 439895 - No event callback should be invoked after the "failure" callback.
Fixed HttpSender and HttpReceiver to use a non-blocking collaborative
mechanism to notify callbacks.
Only the "failed" callback can run concurrently with other callbacks.
No other callback can run after the "complete" callback: a failure
concurrent with another callback will notify the "failed" callback,
finish the running callback and only then invoke the "complete" callback.
2014-07-21 16:48:21 +02:00
Greg Wilkins 853e020210 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-16 15:31:48 +10:00
Simone Bordet 745f757552 Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-07-15 18:49:14 +02:00
Greg Wilkins 4d2a580c2c 439375 preferred rfc7231 format is mime;charset=lowercase-9 2014-07-11 17:56:08 +10:00
Greg Wilkins 5e281dd449 Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2014-07-10 14:43:39 +10:00
Greg Wilkins 55ca09a00e 438190 findbug improvements 2014-07-10 14:41:32 +10:00
Greg Wilkins 706fe1eba3 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-03 16:01:37 +10:00
Greg Wilkins 7fbf521d4e 438204 correctly wrap IPv6 hostnames in URIs generated by jetty 2014-07-03 10:11:16 +10:00
Greg Wilkins 228600caf5 fixed race in HttpReceiverOverHTTPTest 2014-07-02 15:08:06 +10:00
Simone Bordet 2608af8f0d Merged branch 'origin/master' into 'jetty-http2'. 2014-06-26 11:54:50 +02:00
Simone Bordet f2f19ee3ba Improved changes introduced by a746d78. 2014-06-26 10:08:13 +02:00
Greg Wilkins a746d78951 438079 435322 Fixed Iterating Callback fail handling and removed per send instance 2014-06-25 19:20:03 +02:00
Simone Bordet e63ceabafe Merged branch 'origin/master' into 'jetty-http2'. 2014-06-25 17:29:36 +02:00
Simone Bordet 7b7c592fc8 Improved logging. 2014-06-25 17:26:04 +02:00
Simone Bordet 66f3913527 Merged branch 'origin/master' into 'jetty-http2'. 2014-06-25 12:34:19 +02:00
Simone Bordet 3ff4195dbc Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-06-25 12:26:45 +02:00
Simone Bordet aef2f42b5b FastCGI applications needs the Host header, which is missing in HTTP/2. 2014-06-18 11:18:48 +02:00
Greg Wilkins 272e1d8da5 Refactored HttpChannel to not have direct HttpParser dependency 2014-06-17 00:02:50 +02:00
Greg Wilkins bbd61f8e19 Multiple mixed in changes and improvements
Simplified HttpParser as per rfc7230
implemented local/remote hpack max table sizes
2014-06-11 15:16:40 +02: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
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
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 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
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
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
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
Simone Bordet 293efe9798 421198 - onComplete never call onComplete in
BufferingResponseListener in 9.1.

Introduced new method Request.onComplete(CompleteListener) to be able
to specify a CompleteListener even when using the blocking Request
.send() method.
2013-11-07 13:33:46 +01:00
Joakim Erdfelt aba3a41a34 More fixes for Windows build 2013-11-04 16:50:18 -07:00
Joakim Erdfelt 4bd1a041f7 Merge branch 'jetty-9.1' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9.1 2013-11-04 15:00:17 -07:00
Joakim Erdfelt 2c9ea8d4b7 Windows build fixes 2013-11-04 14:59:47 -07:00
Greg Wilkins f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Greg Wilkins eb3bb660b5 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/util/DigestAuthentication.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpReceiverTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpSenderTest.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpField.java
	jetty-server/src/test/java/org/eclipse/jetty/server/AbstractHttpTest.java
	jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/HeadersBlockGenerator.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/parser/HeadersBlockParser.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketFrame.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/DeflateCompressionMethodTest.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/PerMessageDeflateExtensionTest.java
2013-11-03 18:22:09 +11:00
Mikhail Mazursky 6b0269a16d [Bug 420930] Use Charset to specify character encoding
Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-11-02 14:44:36 +06:00
Simone Bordet 3066b673e9 Merged branch 'master' into 'jetty-9.1'. 2013-10-28 11:18:09 +01:00
Simone Bordet 3a10aa4164 419964 - InputStreamContentProvider does not close provided
InputStream.

Now closing the provided InputStream when reading -1 or when an
exception is thrown.
2013-10-28 11:13:17 +01:00
Simone Bordet abac85e129 420364 - Bad synchronization in HttpConversation. 2013-10-25 14:55:48 +02:00
Simone Bordet b9fcd6695c Merged via cherry-pick branch 'master' into 'jetty-9.1'. 2013-10-25 14:21:11 +02:00
Simone Bordet a28e4730ad 420362 - Response/request listeners called too many times.
Wrapped on[Request|Response]XXX(XXXListener) listeners into their
specific interface so that they don't get notified multiple times.
2013-10-25 14:08:55 +02:00
Simone Bordet 2e434ef1e8 Refactored HttpDestinationOverHTTP into a PoolingHttpDestination
base class for reuse from other transports.
2013-10-25 13:02:33 +02:00
Joakim Erdfelt 5965e695fa Cleaning up modules 2013-10-24 14:06:50 -07:00
Simone Bordet 1df50f86f9 Improved logging and toString() implementations. 2013-10-22 19:17:35 +02:00
Simone Bordet 8d9fd6ad71 Improved connection/destination close, so that a connection can
always notify its destination that it has been closed.
2013-10-22 18:00:55 +02:00
Simone Bordet c705bb9480 Avoid overwrite of the abort cause. 2013-10-22 14:03:09 +02:00
Simone Bordet dcbc0d9a21 Merged branch 'master' into 'jetty-9.1'. 2013-10-22 13:34:06 +02:00
Simone Bordet 1ce2ec0007 420039 - BufferingResponseListener continues processing after
aborting request.
2013-10-22 13:33:19 +02:00
Simone Bordet 41eed8f836 419904 - Data corruption on proxy PUT requests.
Fixed InputStreamContentProvider to not reuse the byte[] to read from
the stream.
2013-10-22 12:40:32 +02:00
Simone Bordet eaefd17652 420012 - Improve ProxyServlet.Transparent configuration in case prefix="/". 2013-10-21 22:41:39 +02:00
Simone Bordet 0c80567c12 Using StandardCharset fields instead of Charset.forName(). 2013-10-21 16:14:18 +02:00
Simone Bordet 208382b07d Removed test dependencies on Ning's and Apache's HTTP client. 2013-10-21 11:27:23 +02:00
Simone Bordet 5cc0247a67 Merged branch 'master' into 'jetty-9.1'. 2013-10-21 10:49:15 +02:00
Simone Bordet 4b2756c4b0 419950 - Provide constructor for StringContentProvider that takes
Charset.
2013-10-21 10:48:34 +02:00
Simone Bordet df209b7b70 419901 - Client always adds extra user-agent header.
Fixed handling of the user agent header.
2013-10-21 10:42:41 +02:00
Simone Bordet 88541bef2f Merged branch 'master' into 'jetty-9.1'. 2013-10-21 10:41:01 +02:00
Simone Bordet 9fd27b2f8b 419901 - Client always adds extra user-agent header.
Added test case.
2013-10-21 10:39:37 +02:00
Simone Bordet 7520389c91 419901 - Client always adds extra user-agent header.
Improved test case.
2013-10-21 10:39:06 +02:00
Simone Bordet b46af29a42 419901 - Client always adds extra user-agent header.
Added test case.
2013-10-21 10:28:34 +02:00
Greg Wilkins c44537fca8 419899 Do not wrap SSL Exception as EoFException 2013-10-21 16:29:20 +11:00
Simone Bordet 2d6190da59 Refactored class Fields to a better API. 2013-10-18 13:55:49 +02:00
Simone Bordet c1832b29fb Merged branch 'master' into 'jetty-9.1'. 2013-10-17 12:37:37 +02:00
Simone Bordet 7618826349 419687 - HttpClient's query parameters must be case sensitive.
Modified class Fields to take a boolean parameter that defines
whether it is case sensitive or not, and updated HttpRequest to use
a case sensitive Fields instance for the query parameters.
2013-10-17 12:37:01 +02:00
Simone Bordet e408bd64c7 Improved HttpClient's proxy configuration by using Strings as
included and excluded addresses. This allows to pass in Strings such
as 127.0.0.1/8 or other wildcard formats.
2013-10-17 10:44:39 +02:00
Simone Bordet 45e6ac2a5d Javadocs: clarified that timeouts are in milliseconds. 2013-10-16 17:23:32 +02:00
Simone Bordet 114a95234b Merged branch 'master' into 'jetty-9.1'. 2013-10-16 16:30:04 +02:00
Simone Bordet 45828ee906 418892 - SSL session caching so unreliable it effectively does not
work.

Fixed by making sure that we completely decrypt read bytes.

Before the fix, it was possible that we returned after the decryption
of one TLS frame, while another was still present in the
_encryptedBuffer.
This lead to non-clean closes of the connection, which hampered the
capability of session reuse by clients.

Now we decrypt in a loop and only return if there is nothing more
that we can decrypt.
2013-10-16 16:27:36 +02:00
Simone Bordet 25d9b8704f 417356 - Add SOCKS support to jetty client.
Big refactoring to allow for additional proxy schemes that work at a
lower level than HTTP.

Introduced client-side ConnectionFactory, and binding that to a
HttpDestination, so that connections to that destination will use the
same ConnectionFactory.

The destination's ConnectionFactory is now initialized from the proxy
configuration and the transport, which is now itself a
ConnectionFactory.

The proxy configuration has also changed becoming polymorphic by
introducing a new ProxyConfiguration.Proxy abstract class,
which is implemented as HTTPProxy and can be implemented in future as
SOCKS4Proxy (and possibly others).
2013-10-08 15:06:39 +02:00
Jan Bartel 8cb1001007 Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-10-01 09:12:43 +10:00
Jan Bartel a6f0883ca3 Remove explicit port number from jetty-client SslBytesClientTest 2013-10-01 09:05:05 +10:00
Greg Wilkins 6146f0cc9c cleanup threadpool usage 2013-09-30 14:07:17 +10:00
Greg Wilkins 070ce9dd22 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
2013-09-09 15:41:17 +10:00
Mikhail Mazursky 767faece5c [Bug 415999] Fix some of FindBugs warnings
Mostly not closed streams/DB resources are fixed. But also less
important things.

Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-09-09 00:24:31 -04:00
Simone Bordet 3cdf4dece1 Refactored some behaviour to base classes to ease the FCGI
implementation, and taken the chance to remove redundant code.
2013-09-07 00:36:31 +02:00
Simone Bordet 4663fa4992 Renamed "Empty" inner classes to "Adapter" to comply with the rest of
the codebase.
2013-09-04 13:15:23 +02:00
Simone Bordet 3be5670448 413387 - onResponseHeaders is not called multiple times when multiple
redirects occur.

Refactored the redirection code into HttpRedirector to ease
applications that need to access the redirect URI and then redirect.
2013-09-04 12:57:02 +02:00
Simone Bordet e65f21634d 415047 - Create URIs lazily in HttpClient.
URIs are now created lazily, although a call to Request.getURI() is
made anyway for each request sending (and therefore the URI is
created anyway for each send). However, we save creating multiple
URIs in case the scheme, path, query or params are changed before
sending the request.
2013-09-04 09:58:20 +02:00
Simone Bordet f10562f269 Merged branch 'master' into 'jetty-9.1'. 2013-09-03 10:41:15 +02:00
Simone Bordet 78c322af8e 416314 - jetty async client wrong behaviour for HEAD Method + Redirect.
Fixed redirect behavior based on
http://greenbytes.de/tech/tc/httpredirects/.
2013-09-03 10:34:30 +02:00
Jesse McConnell ac30f5c9bd update other jetty mods to new format 2013-08-29 16:39:28 -05:00
Joakim Erdfelt 2e94149ea3 Merge branch 'jetty-9.1' into jetty-9.1-altstart 2013-08-23 11:49:41 -07:00
Jesse McConnell 725e405dac first pass for mod files for distribution 2013-08-22 11:53:58 -05:00
Greg Wilkins 59540abeda Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2013-08-22 22:58:58 +10:00
Simone Bordet c0ed8375d3 Removed unnecessary hack to determine the logger name. 2013-08-22 12:20:18 +02:00
Simone Bordet 8f41e33938 Improved idle timeout mechanism. 2013-08-22 12:17:13 +02:00
Thomas Becker f11d9ba4d6 Remove HttpStalledServerConnectionTest 2013-08-21 10:43:07 +02:00
Joakim Erdfelt ffad720991 Fixing Javadoc errors that JDK 1.7 complains about 2013-08-14 11:50:07 -07:00
Joakim Erdfelt 6572dfae27 Fixing javadoc in jetty-client that JDK 1.7 complains about 2013-08-14 11:05:34 -07:00
Simone Bordet 34032552ea Avoid boxing of primitive int variables in logging statements. 2013-08-14 14:33:05 +02:00
Thomas Becker ed3d168496 fix HttpReceiver typo in javadoc 2013-08-14 12:17:23 +02:00
Thomas Becker fffdd6b2fa Connection javadoc fix 2013-08-13 18:27:06 +02:00
Simone Bordet 6019a37064 Merged branch 'master' into 'jetty-9.1'. 2013-08-13 16:25:04 +02:00
Simone Bordet 759c7096b2 414972 - HttpClient may read bytes with pre-tunnelled connection.
Now the receiver checks whether the connection is closed, and returns
immediately if it is without "stealing" the bytes to the tunnelled
connection.
2013-08-13 16:01:16 +02:00
Simone Bordet d86ceaf790 HttpClient optimizations.
HttpConnectionPool now puts "hot" idle connection in the front of a deque,
rather than at the end of a queue, so that the hotter they are the more they
are used.

HttpRequest is now initialized with better defaults so that
HttpConnection.normalizeRequest() has less work to do.
This reduced the number of branches to be executed for each request.

HttpDestination now produces less garbage by using Jetty's BlockingArrayQueue
instead of Java's LinkedBlockingQueue.

HttpClient has now a bigger response buffer, 16 KiB, by default.
2013-08-05 19:36:19 +02:00
Simone Bordet 8c2be70330 Merged branch 'master' into 'jetty-9.1'. 2013-07-25 17:11:09 +02:00
Simone Bordet 89977cdab1 Completed a couple of TODOs. 2013-07-25 16:40:48 +02:00
Simone Bordet 743c78cc0c 412846 - jetty Http Client Connection through Proxy is failing with Timeout.
The problem was due to the fact that the server replied with HTTP/1.0
to the CONNECT request; because of this, the parser was not set in the
"head response mode".

Now we are setting the parser in the head response mode also if the
request method is a CONNECT.
2013-07-25 16:38:22 +02:00
Simone Bordet ee3c249579 Merged branch 'jetty-7' into 'jetty-8'. 2013-07-25 16:08:58 +02:00
Simone Bordet 3b18490ead 409028 - Jetty HttpClient does not work with proxy CONNECT method.
The problem was due to the fact that the server replied with HTTP/1.0
to the CONNECT request; because of this, the parser was set as non
persistent, and the tunnel was immediately closed.

Now we are setting the parser as persistent if the method is a CONNECT,
no matter what HTTP version the server specifies.
2013-07-25 16:08:02 +02:00
Jan Bartel 1d77a139fd Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-07-25 23:06:33 +10:00
Jan Bartel 50a67eac6a Merge remote-tracking branch 'origin/jetty-8'
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/HttpExchange.java
	jetty-client/src/test/java/org/eclipse/jetty/client/IdleTimeoutTest.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpGenerator.java
2013-07-25 13:22:14 +10:00
Jan Bartel 72b077921d Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-07-25 11:26:35 +10:00
Simone Bordet f4a41efaad Merged branch 'master' into 'jetty-9.1'. 2013-07-24 11:21:36 +02:00
Simone Bordet 0f702624a3 410668 - HTTP client should support the PATCH method.
Modified the Request interface to add method(String) so that
additional HTTP methods (such as from WebDAV) can be used.
2013-07-24 10:33:42 +02:00
Simone Bordet 7b4ebc270c Merged branch 'master' into 'jetty 9.1'. 2013-07-23 18:44:45 +02:00
Simone Bordet 108aa247b4 412814 - HttpClient calling CompleteListener.onComplete() twice.
The problem was stemming from the HttpSender completing the response,
but the response was actually completed by HttpReceiver, resulting in the
double call to onComplete().

Now HttpSender checks whether it was able to complete the response, and
only in that case calls the onComplete() callback.
2013-07-23 18:40:46 +02:00
Simone Bordet f62c72c02b Fixed compilation error. 2013-07-23 17:28:51 +02:00
Simone Bordet 1c95bf9876 Code cleanups. 2013-07-23 16:47:03 +02:00
Simone Bordet d0f0dedf20 413531 - Introduce pluggable transports for HttpClient.
Merge of the branch 'http_client_transport' is now complete,
and the implementation is sound for the HTTP transport.
A basic implementation for the SPDY transport exists, but needs
improvements.
2013-07-23 16:08:56 +02:00
Simone Bordet a1032465b8 Improved documentation. 2013-07-23 15:53:35 +02:00
Simone Bordet 55c204b3ba Fixed InputStreamContentProvider.hasNext() to be idempotent until next() is called. 2013-07-23 15:53:35 +02:00
Simone Bordet beee37e96a Moved HttpClientTransport SPDY implementation in its own module under the SPDY project. 2013-07-23 15:53:35 +02:00
Simone Bordet af06b25538 Javadocs. 2013-07-23 15:53:35 +02:00
Simone Bordet b82444e3d2 Improved HttpSender.sendHeaders() and sendContent() methods, separating HttpContent and the callbacks. 2013-07-23 15:53:35 +02:00
Simone Bordet 64a8811a5b Proceeding only if expecting a 100-Continue response. 2013-07-23 15:50:51 +02:00
Simone Bordet bf47119109 Improved exception handling in HttpSender. 2013-07-23 15:50:51 +02:00
Simone Bordet 1fa4a47f1d Added debug code for terminal chunk bug. 2013-07-23 15:50:51 +02:00
Simone Bordet b246d70103 Updated HttpClient code to Jetty 9.1 after merge. 2013-07-23 15:50:51 +02:00
Simone Bordet a4c63caf26 Working draft of the abstraction of HttpClient transport. 2013-07-23 15:50:51 +02:00
Simone Bordet 3b7322f53b Merged branch 'master' into 'jetty-9.1'. 2013-07-23 10:01:17 +02:00
Simone Bordet 0aa2a5b6bb 411844 - ArrayIndexOutOfBoundsException on wild URL.
URLs like /path?= are now handled correctly.
2013-07-22 17:22:16 +02:00
Greg Wilkins b8f7637e7d Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-07-22 23:32:04 +10:00
Simone Bordet 762e4ba4c3 413113 - Inconsistent Request.getURI() when adding parameters via Request.param().
Fixed by rebuilding the URI when a call to param() is made.
2013-07-16 21:50:22 +02:00
Simone Bordet 1555a7eb0a 413108 - HttpClient hardcodes dispatchIO=false when using SSL.
Reverted to use default value for dispatchIO - without hardcoding it.
2013-07-16 21:33:47 +02:00
Thomas Becker 5667928921 HttpStalledServerConnectionTest fixes 2013-07-15 14:13:36 +02:00
Thomas Becker 891a2c2b36 add HttpStalledServerConnectionTest, small improvements to ProxySPDYToHTTPLoadTest 2013-07-12 08:40:35 +02:00
Thomas Becker af02334ff7 412750 HttpClient close expired connections fix 2013-07-11 15:13:01 +02:00
Greg Wilkins 7303341ecf 398467 Servlet 3.1 Non Blocking IO
more test fixes
2013-07-11 18:45:04 +10:00
Greg Wilkins cd97b3dcbf 398467 Servlet 3.1 Non Blocking IO
fixed more tests
2013-07-11 15:57:42 +10:00
Greg Wilkins 981102fda5 398467 Servlet 3.1 Non Blocking IO
Asynchronous reads working.
2013-07-05 18:11:09 +10:00
Joakim Erdfelt f8c457f75e Merge branch 'jetty-9.1' into javawebsocket-jsr 2013-06-19 15:07:15 -07:00
Simone Bordet d7c5418718 Merged branch 'jetty-7' into 'jetty-8'. 2013-06-19 19:44:53 +02:00
Simone Bordet 0bca1974b7 411135 - HttpClient may send proxied https requests to the proxy instead of the target server.
Made sure to always tunnel the connection if needs to be tunnelled.
2013-06-19 19:43:49 +02:00
Simone Bordet 9240039366 Refactored test so that's clear that host name verification happens on the client. 2013-06-18 10:54:15 +02:00
Greg Wilkins d660cfcff6 Merge remote-tracking branch 'origin/master' into servlet-3.1-api
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannelState.java
	tests/test-continuation/src/test/java/org/eclipse/jetty/continuation/ContinuationBase.java
2013-06-11 11:17:04 +10:00
Simone Bordet a2815c0611 410246 - HttpClient with proxy does not tunnel HTTPS requests.
Modified HttpClient to tunnel properly requests, and ported tests from Jetty 7 to test this behavior.
2013-06-08 00:38:11 +02:00
Simone Bordet 2ff8962f9f 410083 - Jetty clients submits incomplete URL to proxy.
Made the request URI absolute in case the HttpClient is configured with a forward proxy.
2013-06-07 16:34:23 +02:00
Greg Wilkins 15e0d50b79 Merge remote-tracking branch 'origin/master' into servlet-3.1-api 2013-05-23 09:50:27 +10:00
Jesse McConnell 74a4077dad Add package-info.java files to all jetty packages. 2013-05-21 15:09:49 -05:00
Jesse McConnell cede990d41 Add package-info.java to all jetty packages 2013-05-21 15:09:49 -05:00
Jan Bartel cbac0ea5fa Merge remote-tracking branch 'origin/master' into servlet-3.1-api 2013-05-16 07:24:49 +10:00
Simone Bordet 355c682faa 407326 - Test Failure: org.eclipse.jetty.client.HttpClientStreamTest.testInputStreamResponseListenerFailedBeforeResponse[0].
Instead of using port 0, now using an ephemeral port that is not listening anymore.
2013-05-09 12:34:07 +02:00
Simone Bordet 858d58708d 407246 - Test harness checked results in callbacks ignored.
Reverted commit 1155901cbb.
2013-05-09 12:14:03 +02:00
Jan Bartel 8d0cf5e949 Merge remote-tracking branch 'origin/master' into servlet-3.1-api 2013-05-06 14:46:28 +10:00
Greg Wilkins 1155901cbb fixed test harness to not have asserts in callbacks 2013-05-06 12:49:50 +10:00
Simone Bordet 6a47e4456f 406015 - Query parameters and POST queries.
Fixed proxy case where the path is rewritten to be absolute.
2013-05-05 20:33:44 +02:00
Simone Bordet 7d5ac2918e 406015 - Query parameters and POST queries.
Reworked the way query parameters are handled, making it more
consistent between request.path(...) and request.param(...).

Removed the hardcoding of passing parameters as body in POSTs.
2013-05-05 18:47:43 +02:00
Simone Bordet c1d655775f 407135 - Unauthorized response causes retry loop.
Fixed by adding a conversation flag to check if the authentication has
been tried, and forward the 401 if the flag is found.
2013-05-03 18:28:30 +02:00
Jan Bartel 0d181d9a75 Merge remote-tracking branch 'origin/master' into servlet-3.1-api 2013-05-03 16:59:39 +10:00
Greg Wilkins d351e0790a 406617 Spin in Request.recycle
Numerous code cleanups with the handling of early closes of requests, specially when the response has already been sent.
2013-05-03 15:15:03 +10:00
Jan Bartel 87d4690462 405533 Implement special role ** for security constraints 2013-04-19 15:53:45 +10:00
Jan Bartel 3812622365 Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-04-18 14:37:38 +10:00
Simone Bordet 70e6655ec5 364921 - FIN WAIT sockets.
Interim commit, as things are not working exactly right yet.
2013-04-12 23:17:24 +02:00
Thomas Becker e1fa106c19 Fix SslBytesServerTest failing on MacOS 2013-04-12 14:13:41 +02:00
Simone Bordet f57a4a45a6 405551 - InputStreamResponseListener.await returns null when request fails.
Moved the success/failure logic to onComplete(), to be notified even if only the request fails.
2013-04-12 13:50:45 +02:00
Simone Bordet 120b8c9839 405044 - Query parameters lost for non GET or POST. 2013-04-05 23:20:19 +02:00
Simone Bordet 72219d016b 404610 - Reintroduce ability to disallow TLS renegotiation. 2013-04-04 17:11:01 +02:00
Simone Bordet b921ed13c0 400689 - Add support for Proxy authentication. 2013-03-29 13:21:27 +01:00
Greg Wilkins 1f9e4f3e5c Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-03-28 14:05:24 +11:00
Greg Wilkins 72162c0342 404517 Close connection if request received after half close 2013-03-28 14:04:24 +11:00
Simone Bordet 968b315926 404204 - Exception from inputstream cause hang or timeout.
In case InputStreamContentProvider threw an exception after
the request was committed, the connection was not shutdown
leaving the server waiting for more data and eventually idle timeout.
2013-03-26 09:28:20 +01:00
Simone Bordet 6a8049f126 Simplified connect Promise implementation. 2013-03-25 18:41:57 +01:00
Simone Bordet 07420547f9 Using Closeable instead of AutoCloseable. 2013-03-25 16:36:07 +01:00
Simone Bordet 679eeb7a7c Test for 404204 - Exception from inputstream cause hang or timeout. 2013-03-25 15:44:18 +01:00
Joakim Erdfelt 8a96cc8c4a Merge branch 'jetty-7' into jetty-8 2013-03-14 16:54:35 -07:00
Joakim Erdfelt 5084a1430f Fixing build.
+ Bumping jetty-test-helper to 2.0
 + Bumping jetty-version-maven-plugin to 1.0.10
 + Fixing JDK 1.5 build warts
 + Updating Stress use for new "test.stress" property introduced by upgrades
2013-03-14 16:52:52 -07:00
Greg Wilkins 8ffff06d06 402626 Do not required endpoint host checking by default in server and configure in client 2013-03-14 12:47:56 +11:00
Simone Bordet 6be028c040 402397 - InputStreamResponseListener early close inputStream cause hold lock. 2013-03-11 17:37:42 +01:00
Simone Bordet 37fd36b31c 402397 - InputStreamResponseListener early close inputStream cause hold lock. 2013-03-06 17:11:16 +01:00
Simone Bordet 7037bca94d Introduced Request.header(HttpHeader, String) to simplify code. 2013-03-04 17:05:18 +01:00
Simone Bordet 868458f980 402341 - Host with default port causes redirects loop.
Removed default port from the Host request header.
Although allowed by RFC 2616, seems that many server chokes it.
2013-03-04 16:33:57 +01:00
Simone Bordet 8d6a4c39df Better logging for the RedirectProtocolHandler. 2013-03-04 16:33:57 +01:00
Simone Bordet a1560bea21 402316 - HttpReceiver and null pointer exception.
The NPE was caused by (invalid) Set-Cookie headers without value.
A guard has been added to avoid the NPE.
2013-03-04 16:33:57 +01:00
Greg Wilkins 056be85766 less verbose exception 2013-03-04 16:40:18 +11:00
Greg Wilkins 41952ebf1d 402075 Dont allocate the parser trie unless needed 2013-03-01 22:16:54 +11:00
Simone Bordet 0ec0da9b4b Removed test class brought in by mistake during merge. 2013-02-27 18:31:19 +01:00
Simone Bordet a252841561 401777 - InputStreamResponseListener CJK byte (>=128) cause EOF.
Fixed by adding & 0xFF when returning bytes as integers.
2013-02-26 15:36:48 +01:00
Simone Bordet 34d343e260 401651 - Abort request if maxRequestsQueuedPerDestination is reached. 2013-02-25 09:24:43 +01:00
Greg Wilkins 2d310ac82e 401642 Less verbose INFOs 2013-02-25 14:42:30 +11:00
Jan Bartel 6a48749f0c Merge remote-tracking branch 'origin/jetty-7' into jetty-8
Conflicts:
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
2013-02-22 11:32:57 +11:00
Simone Bordet 8418acdae4 401414 - Hostname verification fails.
Now using host name instead of host address to create SSLEngines.
2013-02-21 21:08:59 +01:00
Simone Bordet ecfd7f74e6 376273 - Early EOF because of SSL Protocol Error on https://api-3t.paypal.com/nvp.
This was caused by the fact that the other peer closed the raw socket after sending data.
SslConnection was reading the data, but not notifying the application of the data, then
reading the abrupt close, which was causing an exception, ending up in the application
never being notified of the data that arrived.
Now we catch and ignore the exception during SSLEngine.closeInbound(), and we properly
send an alert to the other peer (instead of hard closing the connection as well).
In this way, the application has the chance to read the data and then close the connection.
2013-02-21 17:15:19 +01:00
Simone Bordet a6510e83ec Made the test more reliable. 2013-02-20 19:19:06 +01:00
Simone Bordet 3ffbb586db 388103 - Add API for tracking down upload progress.
Introduced Request.ContentListener, invoked after the content has been sent.
2013-02-20 17:56:21 +01:00
Simone Bordet 29d779778e Reduced object creation by caching the conversation response listeners. 2013-02-20 15:42:01 +01:00
Simone Bordet 94a344289b 400849 - Conversation hangs if non-first request fails when queued.
Taken the chance to revisit the lifecycle of HttpConversation and HttpExchange
(now they are created as soon as the request is sent, before they were created
when the exchange was associated to the connection).
This change made the conversation listeners available as soon as the request
was sent, so that it was simpler to notify the right listeners also in case of failure
of a non-first request (which fixes the bug).
2013-02-15 18:45:29 +01:00
Simone Bordet 651105c73b 400848 - Redirect fails with non-encoded location URIs. 2013-02-14 21:37:30 +01:00
Simone Bordet df56bd3c27 400014 - Http async client DNS performance.
Introduced SocketAddressResolver to perform DNS resolution in a separate thread,
and updated HttpClient to make use of it.
2013-02-14 21:37:29 +01:00
Simone Bordet dd96cc50b2 400734 - NPE for redirects with relative location.
Now resolving locations against original URL if it is relative.
2013-02-14 21:37:29 +01:00
Simone Bordet 6649b890a7 400434 - Add support for an OutputStream ContentProvider. 2013-02-13 10:25:25 +01:00
Thomas Becker bb3c1433f4 400184: SslContextFactory change. Disable hostname verification if trustAll is set 2013-02-07 11:50:19 +01:00
Thomas Becker 6f91d6a590 Merge branch 'spdy_http_proxy' 2013-01-31 15:13:53 +01:00
Thomas Becker cd30ac104d interims 2013-01-29 09:17:32 +01:00
Simone Bordet ec254cd165 399324 - HttpClient does not handle correctly UnresolvedAddressException. 2013-01-28 23:45:44 +01:00
Simone Bordet 40621f0300 Added test that connects to an external website that exposes a non-HTTP protocol such as SSH. 2013-01-28 23:45:44 +01:00
Simone Bordet 9ba1069383 399319 - Request.getURI() may return negative ports. 2013-01-28 23:45:44 +01:00
Simone Bordet 7c53c317ae Fixed DeferredContentProvider race condition.
HttpSender was setting the listener for asynchronous content before its own state was properly setup.
This was causing race conditions, where a thread could notify HttpSender and find null data members causing later NPEs.

Now the listener is set after the state is setup, removing the race condition.
2013-01-28 17:32:22 +01:00
Thomas Becker 80b44f9940 interims 2013-01-28 15:27:03 +01:00
Thomas Becker 1f6d058b20 intermittent commit 2013-01-28 12:18:30 +01:00
Jan Bartel ae644581dd Port jetty-client IdleTimeoutTest to jetty-9 2013-01-25 14:33:09 +11:00
Greg Wilkins 7fd04a186f cleanup after merge 2013-01-25 11:47:47 +11:00
Greg Wilkins ff350c3740 Merge remote-tracking branch 'origin/jetty-8'
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/GzipFilter.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/AbstractCompressedStream.java
	jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java
2013-01-25 11:46:03 +11:00
Simone Bordet b2f3852fb3 398872 - SslConnection should not be notified of idle timeouts. First solution. 2013-01-24 10:29:27 +01:00
Joakim Erdfelt b6d551675b Merge branch 'jetty-7' into jetty-8 2013-01-23 13:58:34 -07:00
Jan Bartel 92af54c3fc Make IdleTimeoutTest jdk1.5 compliant 2013-01-22 08:58:35 +11:00
Jan Bartel fe48239b34 Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-01-21 16:54:06 +11:00
Jan Bartel 91a94f8213 362226 HttpConnection "wait" call causes thread resource exhaustion 2013-01-21 16:43:57 +11:00
Simone Bordet 44e64aa309 Removed TimedResponseListener, since the timeout mechanism is now
provided by Request.timeout(...) for both blocking and asynchronous send().
2013-01-17 16:15:34 +01:00
Simone Bordet b3f6739d51 Completed the implementation of DeferredContentProvider.
DeferredContentProvider is used to provide content after
Request.send(...) is called, a use case that is useful
in SPDY-to-HTTP proxies, where content arrives in SPDY
data frames at later times than the headers.
2013-01-17 12:53:39 +01:00
Simone Bordet 386fafe790 Avoid copying sensitive headers when copying a Request. 2013-01-17 12:53:39 +01:00
Thomas Becker 8c3edce565 use existing keystore 2013-01-17 12:51:07 +01:00
Thomas Becker c8f4332c34 add missing keystore 2013-01-17 12:39:46 +01:00
Thomas Becker 9ebea3938d 393385: Make hostname verification configurable in SslContextFactory and enable it by default (See http://www.ietf.org/rfc/rfc2818.txt section 3.1) 2013-01-17 10:28:15 +01:00
Jesse McConnell e1c516c7d1 merge from jetty-8 and update license blocks. 2013-01-11 17:04:53 -06:00
Jesse McConnell 863944873d merge from 7 and update license blocks for 2013 2013-01-11 15:01:16 -06:00
Jesse McConnell a4dbb5823c update license blocks for 2013 2013-01-11 14:57:51 -06:00
Greg Wilkins 27c31fb403 jetty-9 organised imports. Cleaned up some TODOs 2013-01-11 16:37:32 +11:00
Simone Bordet b1882a3258 Fixed logging level: from into to debug. 2013-01-10 10:47:25 +01:00
Simone Bordet 57c5803cd8 Changed the default scheduler to ScheduledExecutorScheduler to reduce GC pressure. 2013-01-10 10:26:40 +01:00
Simone Bordet a374ac0cc8 Improved logging of removed connections. 2013-01-10 09:40:21 +01:00
Simone Bordet 55d8088f05 Made HttpDestination to use BlockingArrayQueue (that can grow) instead of
ArrayBlockingQueue, which allocates upfront memory even if it does not use it.
2012-12-21 17:13:07 +01:00
Simone Bordet b6e4f98cf7 Performance improvements to HTTP client after profiling session.
The profiling suggested to reduce the number of unneeded allocations
and this required a couple of API changes.
2012-12-19 16:27:20 +01:00
Simone Bordet c9f4513a89 Reworked HTTP client API, removing usage of Future. 2012-12-19 16:27:20 +01:00
Simone Bordet 58dff061e1 394552 - HEAD requests don't work for jetty-client.
Added a missing call to HttpParser.setHeadResponse()
to inform the parser that it is a response to a HEAD request.
2012-12-17 11:37:40 +01:00
Jan Bartel 43c9bba86d 393158 java.lang.IllegalStateException when sending an empty InputStream 2012-12-17 18:40:50 +11:00
Simone Bordet 2c583ccda4 Introduced Request.CommitListener to separate the pre-commit request event from the commit request event. 2012-12-13 21:01:58 +01:00
Simone Bordet 0682af3502 Introduced Response.HeaderListener to allow applications to control processing of headers. 2012-12-13 17:15:34 +01:00
Simone Bordet 5f17509a18 Fixed handling of IPv6 destinations. 2012-12-12 14:54:58 +01:00
Simone Bordet 8d0c90eef9 Recreating the CookieManager if the CookieStore is changed. 2012-12-12 14:54:22 +01:00
Simone Bordet b9b16529d5 Removed jetty-client's CookieStore to use java.net.CookieStore instead.
This unifies the usage of CookieStores between jetty-client and jetty-websocket, and hopefully other modules as well.
2012-12-12 10:18:18 +01:00
Simone Bordet fb233dbecb Exposed the Request passed to the constructor via a getter.
Subclasses can therefore pass a request built on-the-fly to the super constructor
and are able to get a reference to it.
2012-12-12 10:18:18 +01:00
Simone Bordet d6bd9df93a Aborting the response if the content length limit is reached. 2012-12-07 16:42:25 +01:00
Simone Bordet 97a2f3328f Added CookieStore.removeCookie() method and implementation. 2012-12-07 16:42:25 +01:00
Greg Wilkins 3e151901bf jetty-9 Use public HttpField 2012-12-08 01:41:01 +11:00
Greg Wilkins a20d984d30 jetty-9 Added Trie for cached string lookup. HttpFields does not use StringMap 2012-12-08 01:41:00 +11:00
Simone Bordet b2e878a7e8 + Introduced Request.content(ContentProvider content, String contentType)
+ Introduced a new renamings to clarify concepts
+ Vastly improved Javadocs.
2012-12-04 16:18:09 +01:00
Simone Bordet 6756cc7e75 Fixed compilation problem. 2012-11-23 14:13:07 +01:00
Simone Bordet b7cdb29a14 Simplified connection establishment code. 2012-11-23 13:16:32 +01:00
Simone Bordet 9f86d36d6c Fixed infinite recursion due to method renaming. 2012-11-23 12:18:52 +11:00
Simone Bordet b2c03b04f1 Made jetty-client module compile. 2012-11-23 12:18:51 +11:00
Greg Wilkins 7737dc8c76 394854 Implemented Promise 2012-11-23 12:18:51 +11:00
Simone Bordet 7771b6e27b Added constructor to specify the max length. 2012-11-20 15:44:46 +01:00
Simone Bordet 2079938120 Improved Usage class to show usages. 2012-11-14 12:52:11 +01:00
Simone Bordet e4cbb94ed6 Changed the read logic.
Before, if the stream had no content, InputStreamContentProvider's iterator
hasNext() was returning true, and next() was returning an empty buffer,
because the read was performed in next() and it was not possible to know
before reading whether the stream had content or was already at EOF.

Now the reads are performed in hasNext(), so that it is possible to return
immediately whether the stream is at EOF or not.
This solves a problem with ProxyServlet, where GET requests with no
content indication were proxied to the upstream server as GET requests
with chunked content, which in most cases were not understood by servers.
2012-11-14 12:12:29 +01:00
Simone Bordet 6ef0f415f0 Centralized defaulting of the port, from -1 to 80 or 443 depending on the scheme. 2012-11-14 12:12:29 +01:00
Simone Bordet ba40f7897d Completed port of ConnectHandler and ProxyServlet implementations. 2012-11-13 15:35:51 +01:00
Simone Bordet 9abc3988fb B64 coding and decoding now throws the unchecked UnsupportedCharsetException
rather than the checked UnsupportedEncodingException.
2012-11-13 11:29:54 +01:00
Simone Bordet 19e856fa7b Fixed cookie lookup in case of children paths. 2012-11-07 20:13:53 +01:00
Simone Bordet 28fd4cceac Implemented proxy functionalities for both client and server. 2012-11-07 20:13:53 +01:00
Greg Wilkins 36ddd3f5d6 393368 min websocket version 2012-11-05 11:02:50 +11:00
Greg Wilkins 52464a5ba6 Merge remote-tracking branch 'origin/jetty-8'
Conflicts:
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java
	jetty-client/src/test/java/org/eclipse/jetty/client/SslHttpExchangeTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/SslSecurityListenerTest.java
	jetty-deploy/src/main/java/org/eclipse/jetty/deploy/WebAppDeployer.java
	jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ContextProvider.java
	jetty-http/src/main/resources/org/eclipse/jetty/http/mime.properties
	jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java
	jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectChannelEndPoint.java
	jetty-jmx/src/main/java/org/eclipse/jetty/jmx/MBeanContainer.java
	jetty-jmx/src/main/java/org/eclipse/jetty/jmx/ObjectMBean.java
	jetty-overlay-deployer/src/main/java/org/eclipse/jetty/overlays/OverlayedAppProvider.java
	jetty-plus/src/main/java/org/eclipse/jetty/plus/annotation/Injection.java
	jetty-plus/src/main/java/org/eclipse/jetty/plus/security/DataSourceLoginService.java
	jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java
	jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java
	jetty-security/src/main/java/org/eclipse/jetty/security/authentication/FormAuthenticator.java
	jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java
	jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPSPDYConnection.java
	jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/http/ServerHTTPSPDYAsyncConnection.java
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-util/src/main/java/org/eclipse/jetty/util/Fields.java
	jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketClientFactory.java
	jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketConnectionRFC6455.java
	jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketClientTest.java
	jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketMessageRFC6455Test.java
	test-jetty-nested/src/main/java/org/eclipse/jetty/nested/Dump.java
	test-jetty-webapp/src/main/java/com/acme/Dump.java
2012-11-02 14:08:05 +11:00
Greg Wilkins 65202e9abe 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls 2012-11-02 11:55:00 +11:00
Simone Bordet 62f8e13397 HTTP client: renamed Request.aborted() to Request.isAborted() to comply with the naming convention. 2012-10-31 13:21:15 +01:00
Simone Bordet b3c1accab9 HTTP client: fixed bug in redirects: the new host was overwritten with the old one. 2012-10-30 22:37:25 +01:00
Simone Bordet 0d762bcdbc HTTP client: refactored response listeners to support lambdas. 2012-10-30 19:22:29 +01:00
Simone Bordet 8d51961516 HTTP client: refactored request listeners to support lambdas. 2012-10-30 19:22:29 +01:00
Simone Bordet 33d97b8dd4 HTTP client: refactored "last exchange" concept out of HttpConversation into HttpExchange. 2012-10-30 12:56:21 +01:00
Simone Bordet 7f37ddbc25 HTTP client: added TestTracker rule. 2012-10-30 12:15:21 +01:00
Simone Bordet ebb76ecfb9 392959 - Review HttpClient.getConversation(long).
Modified to HttpClient.getConversation(long, boolean) in order
to specify whether the conversation must be created or not.
2012-10-30 12:15:21 +01:00
Simone Bordet 1173916da1 HTTP client: renamed ResponseListener.Timed to Schedulable. 2012-10-30 12:15:21 +01:00
Simone Bordet 605b0360e1 HTTP client: reviewed API.
The API were inconsistent: sometimes using the C format for getters and setters
(e.g. String host(), void host(String)), sometimes using the JavaBeans format.

Now the API stick with the JavaBean format apart the "fluent" API in Request,
that is in the fluent format (i.e. C setter format, but returning this instead of void).
2012-10-26 23:42:18 +02:00
Simone Bordet 5e7f6988e4 HTTP client: introduced InputStreamContentProvider. 2012-10-26 17:40:28 +02:00
Simone Bordet b0306adf8d HTTP client: fixed bug in case of connection failure:
requests may have stayed queued and never notified of a connection failure
if their number exceeded the max connection per address value.
2012-10-26 14:57:06 +02:00
Simone Bordet 58e8ff8fbf #392733 - Implement a total timeout for asynchronous sends.
Reworked the implementation.
Instead of adding another method for asynchronous sends with
timeout parameters, we now use a TimedResponseListener utility
class, that holds the timeout information.
2012-10-26 14:57:06 +02:00
Simone Bordet e2a988f8fc HTTP client: tests on external synchronization. 2012-10-26 14:57:06 +02:00
Simone Bordet 975a20271f #392733 - Implement a total timeout for asynchronous sends. 2012-10-24 21:36:40 +02:00
Simone Bordet b6bf6899a9 HTTP client: improved request abort handling in case of conversations. 2012-10-23 11:02:50 +02:00
Simone Bordet 8635792507 HTTP client: better implementation for request/response abort. 2012-10-22 23:33:41 +02:00
Thomas Becker 8c3642754e 392470: Fix problem in suspend, expire cycle when HttpChannel.run() is called multiple times (happens for SPDY). Add test cases. Remove unused argument from HttpHandler.messageComplete() interface and it's implementations. 2012-10-19 18:17:29 +02:00
Greg Wilkins 1a895bbd44 392237 move verbose client test failures 2012-10-18 16:53:19 +11:00
Greg Wilkins 7796a49020 392237 cleaned up client test exceptions 2012-10-18 16:36:21 +11:00
Simone Bordet 7e30c4ac20 jetty-9: HTTP client: fixed problem when using default ports such as 80 or 443. 2012-10-12 15:03:14 +02:00
Simone Bordet 6159d6f268 jetty-9: HTTP client: fixed problem when idle connections were closed remotely: the local connection was not closed. 2012-10-12 14:58:21 +02:00
Simone Bordet 707acbeed7 jetty-9: HTTP client: better logging. 2012-10-12 14:58:21 +02:00
Simone Bordet 4ab9715c1b jetty-9: HTTP client: better names for the default thread pool and scheduler. 2012-10-12 14:58:21 +02:00
Greg Wilkins 6c011025b6 jetty-9 added a pretty welcome page 2012-10-12 15:36:32 +11:00
Simone Bordet 109381abdb Merge branch 'jetty-9-client-100-continue-bis' into jetty-9 2012-10-11 10:58:56 +02:00
Simone Bordet 402afc6092 jetty-9: HTTP client: implemented support for 100-Continue. 2012-10-11 10:57:40 +02:00
Joakim Erdfelt f2595a7ec3 Bumping up to jetty-test-helper 2.0 with new @Rule TestTracker & AdvancedRunner status messages. 2012-10-10 09:10:51 -07:00
Simone Bordet 03b27d0c61 jetty-9: HTTP client: always dispatching after connection creation.
This is needed to allow onOpen() to execute just after the connection creation,
otherwise the application may delay the onOpen() call indefinitely by implementing
a request listener method.
2012-10-09 10:36:12 +02:00
Simone Bordet 0e448c6514 jetty-9: HTTP client: replaced usage of deprecated JUnit class. 2012-10-09 10:34:44 +02:00
Simone Bordet 02d0cc125c jetty-9: HTTP client: named the scheduler for better debugging. 2012-10-09 10:34:21 +02:00
Simone Bordet bad8f74840 jetty-9: HTTP client: avoid double dispatch for SSL, and made I/O dispatch a configurable parameter. 2012-10-08 14:25:59 +02:00
Simone Bordet be044015ff jetty-9: HTTP client: allow configuration of sockets. 2012-10-08 11:38:26 +02:00
Simone Bordet 0ecd64a747 jetty-9: HTTP client: implemented Request idle timeout. 2012-10-08 11:05:27 +02:00
Simone Bordet c751860af2 jetty-9: Improved HttpReceiver state handling. 2012-10-08 11:05:27 +02:00
Simone Bordet 2748a9381e jetty-9: Added support for connect timeout. 2012-10-08 11:05:26 +02:00
Greg Wilkins f4d12412eb jetty-9 added FilterConnectionFactory and made SpdyServer use it 2012-10-08 15:22:49 +11:00
Simone Bordet d742578353 jetty-9: HTTP client: improvements.
Request now supports opaque attributes.
ContentResponse supports a contentAsString() method, along with BufferingResponseListener.
2012-09-26 13:29:57 +02:00
Simone Bordet 05a0090dd6 jetty-9: HTTP client: re-enabled debug logging for tests. 2012-09-21 18:12:12 +02:00
Simone Bordet 199971a989 jetty-9: Better use of StdErrLog. 2012-09-21 18:00:13 +02:00
Simone Bordet ab2757ab96 jetty-9: Removed TODOs. 2012-09-21 17:24:45 +02:00
Simone Bordet 12a2d3f475 jetty-9: HTTP client: hiding stack traces for expected exception on server. 2012-09-21 15:23:56 +02:00
Simone Bordet f81dc0161e jetty-9: HTTP client: more tests. 2012-09-21 15:10:40 +02:00
Greg Wilkins 68ee346b8a jetty-9 combined the Container and AggregateLifeCycle into ContainerLifeCycle 2012-09-21 11:45:51 +10:00
Simone Bordet 37a7e5977d Merged branch 'jetty-9' into jetty-9-open-close. 2012-09-20 18:46:16 +02:00
Simone Bordet 6de7398d48 jetty-9 - HTTP client: reducing the number of requests for the load test, as it seems the SSL version is never able to pass cleanly. 2012-09-20 18:33:43 +02:00
Simone Bordet 40382bad3a jetty-9 - Removed references to JUnit 3.x. 2012-09-20 18:23:02 +02:00
Simone Bordet 80e1e7b47b jetty-9 - HTTP client: increased the test timeout. 2012-09-20 17:48:30 +02:00
Simone Bordet 92c93e2868 jetty-9 - HTTP client: added HttpClient.POST() utility method. 2012-09-20 17:05:09 +02:00
Simone Bordet 851de69d9d jetty-9 - Third take at open/close refactoring. 2012-09-19 18:04:15 +02:00
Simone Bordet 44b3bb067c jetty-9 - Second take at open/close refactoring. 2012-09-19 13:37:47 +02:00
Simone Bordet eb7501405f jetty-9 - HTTP client: more logging for the SSL load test. 2012-09-18 22:04:18 +02:00
Simone Bordet 953f283bce jetty-9 - HTTP client: make SSL load test to wait more for completion. 2012-09-18 22:04:18 +02:00
Simone Bordet e9d0960e8d jetty-9 - HTTP client: implemented gzip decoding. 2012-09-18 17:27:37 +02:00
Simone Bordet ce4ffa7ad3 jetty-9 - HTTP client: using longer timeout to check for test completion in the SSL case. 2012-09-17 21:49:19 +02:00
Simone Bordet 5ba924963d jetty-9 - HTTP client: tests for explicit connection management. 2012-09-17 20:48:54 +02:00
Simone Bordet bd80a64cb9 jetty-9 - HTTP client: implemented InputStreamResponseListener. 2012-09-17 19:27:35 +02:00
Simone Bordet 776aea91d4 jetty-9 - Better toString(). 2012-09-17 19:27:35 +02:00
Simone Bordet 9355e06603 Intermediate commit. 2012-09-17 19:27:35 +02:00
Simone Bordet 566f17fdd0 jetty-9 - HTTP client: reduced test logging. 2012-09-17 16:56:27 +02:00
Simone Bordet 84f40e8519 jetty-9 - Added toString(). 2012-09-17 16:27:59 +02:00
Simone Bordet e7db1661c6 jetty-9 - HTTP client: load test. 2012-09-17 11:46:26 +02:00
Simone Bordet fdd65fb2ea jetty-9 - HTTP client: utility class BytesContentProvider. 2012-09-17 11:46:26 +02:00
Simone Bordet d30eefca69 jetty-9 - HTTP client: parsing must be done in a while loop, in case the buffer contains more data. 2012-09-17 11:46:26 +02:00
Simone Bordet 5aed22624f jetty-9 - HTTP client: better logging for HttpExchange. 2012-09-17 11:46:26 +02:00
Simone Bordet 195f04bdf3 jetty-9 - HTTP client: added tests combining redirect and authentication. 2012-09-17 11:46:26 +02:00
Greg Wilkins 129583679a jetty-9 javadoc improvements and renamed SelectChannelConnector to ServerConnector 2012-09-17 17:37:56 +10:00
Simone Bordet 8330586c4e jetty-9 - HTTP client: implemented dumping. 2012-09-14 23:30:21 +02:00
Simone Bordet 4ffe66f899 jetty-9 - HTTP client: better cleanup at stop. 2012-09-14 23:30:21 +02:00
Simone Bordet 88cbfed7e0 jetty-9 - Made SelectorManager.connection[Opened|Closed]() concrete, since they are overridden only by SelectChannelConnector. 2012-09-14 23:30:21 +02:00