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
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
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
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
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
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
41952ebf1d
402075 Dont allocate the parser trie unless needed
2013-03-01 22:16:54 +11: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
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
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
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
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
Simone Bordet
b2f3852fb3
398872 - SslConnection should not be notified of idle timeouts. First solution.
2013-01-24 10:29:27 +01: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
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
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
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
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
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
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