Commit Graph

627 Commits

Author SHA1 Message Date
Lachlan 0e95953be3
Merge pull request #9043 from eclipse/jetty-12.0.x-httpcontentFactoryCleanup
Create StaticHttpContentFactory and other cleanups
2022-12-23 22:54:38 +11:00
Greg Wilkins 3d4bb492d0 Improved test coverage 2022-12-22 09:51:14 +11:00
Greg Wilkins 2a5fd34716 Suppress expected stack 2022-12-22 09:24:40 +11:00
Greg Wilkins 81b5fa61cf Avoid using `formatted` in getId 2022-12-22 09:22:29 +11:00
Joakim Erdfelt 0485fdf2f3
Fixing FileID.getFileName when dealing with opaque URIs 2022-12-21 14:51:28 -06:00
Joakim Erdfelt ff48442fa0
Narrowing in on possible bug in jar:file:// handling of Resource.getFileName() 2022-12-21 14:39:20 -06:00
Joakim Erdfelt fe74264ecc
Simpler TreeTrie.isEmpty() method (#9075)
Avoid creating (Key)Set to just test for empty.
More test cases
2022-12-21 12:46:08 -06:00
Joakim Erdfelt ce52ffdd33
More meaningful .toString() implementations 2022-12-21 12:14:07 -06:00
Joakim Erdfelt e753f35965
Adding more LOG.debug() 2022-12-21 12:04:22 -06:00
Jan Bartel 1abaeb6cee
Jetty 12.0.x osgi (#9068) 2022-12-21 08:12:44 -06:00
Joakim Erdfelt e9ec1f423c
Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-12-20 12:56:27 -06:00
Joakim Erdfelt c7e866562f
Enable all jetty-deploy tests (#9058)
* Enable all jetty-deploy tests
2022-12-20 11:40:49 -06:00
Greg Wilkins 12d66f083a Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-12-20 11:20:39 +11:00
Jan Bartel 721a4c74fa
Jetty 12.0.x ee10 convert cookie (#9057)
* Convert HttpCookie -> Cookie based on compliance mode.
* Fix max-age
* Fix old cookie handling; getCookies return null instead of empty list
2022-12-20 10:22:38 +11:00
Greg Wilkins c18e790858
Jetty 12 handler as boolean processor (#9035)
Alternative Handler architecture.

All Handlers are Processors, which now return a boolean to indicate the request has been accepted.
The request/response/callback are no longer modal, so there is no race with the boolean return.

Optimized PathMappings.
Avoid iterations if only ServletPathSpec instances
Avoid tests for empty mappings.
Better reset implementation
Improve suffix matching
Improve exact matching

Renamed HttpStream.getNanoTimeStamp() to getNanoTime().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-19 16:02:26 +01:00
Lachlan Roberts 06f9e5ec18 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-httpcontentFactoryCleanup 2022-12-19 21:46:05 +11:00
Greg Wilkins c55938c3fa Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-12-17 10:29:34 +11:00
Lachlan Roberts 0f1420fbd7 changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-12-16 17:17:12 +11:00
Joakim Erdfelt 3c4fdad9ce
Enable ExternalSiteTest 2022-12-14 13:43:25 -06:00
Joakim Erdfelt 1cecf13575
Enable ConscryptHTTP2ClientTest 2022-12-14 13:36:59 -06:00
Lachlan Roberts a5817144f6 fix HttpContent.Factory config in ResourceHandlerTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-12-14 18:16:32 +11:00
Simone Bordet e16b7948b2 Fixes #9038 - Jetty 12 - Review EE10 Http[Input|Output].Interceptor APIs
Removed HttpInput.Interceptor and HttpOutput.Interceptor.
Simplified AsyncContentProducer.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-13 15:33:27 +01:00
Lachlan Roberts 60656ebb72 make stylesheet final in StaticHttpContentFactory
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-12-13 10:48:06 +11:00
Lachlan Roberts 9270e62f78 rename of StaticHttpContentFactory
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-12-13 10:44:35 +11:00
Lachlan Roberts abc40afd89 cleanups for HttpContent Factories
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-12-13 09:55:55 +11:00
Ludovic Orban 150cad510f improve javadoc and testing + generously comment the surprising implementation
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-12-09 19:25:50 +01:00
Simone Bordet d3a0aa281b
Fixed flaky test MultiPartRequestContentTest.
The problem was that sometimes content bytes generated randomically ended with \r, confusing the multipart parser.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-09 15:58:57 +01:00
Jan Bartel 642d983e01
Issue #8984 Fix dump of Attributes (#9024) 2022-12-09 09:48:55 +11:00
Simone Bordet bc0b4149ff
Clarified HttpReceiver.responseFailure().
Added javadocs to relevant methods in HttpChannel.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-07 23:50:39 +01:00
Simone Bordet 119996c16f
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-07 19:28:05 +01:00
Simone Bordet ee685b23fa
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-07 16:23:11 +01:00
Ludovic Orban b244c9f320 fix testFromEmptyByteBufferWithoutReleaser
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-12-06 22:52:12 +01:00
Joakim Erdfelt 2d9c735d63
Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-12-06 14:38:53 -06:00
Ludovic Orban 017b6c1391 fcgi and ContentTransformer bug fixes
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-12-06 20:04:30 +01:00
Ludovic Orban 42186bff18 #8993: Disallow creating new chunks with an empty ByteBuffer to make Chunk.isTerminal() contract stricter
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-12-06 19:48:17 +01:00
Joakim Erdfelt 45d0b68850
Jetty 12 - Fix `GzipHandler` handling of chunked and `Content-Length` (#8927)
* Jetty 12 - Enabling ContentLengthTest.testGzippedContentLengthAddedByServer
* Restoring HttpReceiver
* Fixing RequestTest
* Issue #8927 - Cleanup of GzipResponse with eye on RFC-1952 behaviors
* Issue #8927 - Set FINISHED state
* Fixing HEAD from HTTP/2 and HTTP/3
* Adding requested javadoc
2022-12-06 12:32:01 -06:00
Joakim Erdfelt 95fd8adeb8
Jetty 12 - Issue #8999 - Remove FileID.isArchive() from ResourceFactory (#9002)
* Issue #8999 - Remove FileID.isArchive() from ResourceFactory
* Remove FileID.isArchive() from URIUtil.toJarFileUri
2022-12-06 12:31:12 -06:00
Simone Bordet d5054667df
Improved locking for HttpReceiver.ContentSource. (#9007)
* Improved locking for HttpReceiver.ContentSource.

Improved response failure code path.
Now either responseFailure() must be called, or exchange.responseComplete() followed by HttpReceiver.abort().

Fixed failAndClose() for HTTP/2 and HTTP/3: the connection must not be closed, stream.reset() is sufficient.

Fixed flaky test HttpClientDemandTest.testTwoListenersWithDifferentDemand().

Fixed DistributionTests.testVirtualThreadPool().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-06 15:09:48 +01:00
Greg Wilkins e682f73d54
Cleanup of TypeUtil and ContextHandler stop/start (#8998)
* Extracted some non controversial cleanups from another mega PR:

 + TypeUtil class shortname used more often and includes trailing digits
 + Fixed direct stopping/starting of a nested ContextHandler
 + Fixed null path handling in nested context
 + more tests for all of the above

* Extracted some non controversial cleanups from another mega PR:

Fixed nested doStart and doStop

* Extracted some non controversial cleanups from another mega PR:

Fixed DistributionTests
2022-12-06 15:43:31 +11:00
Greg Wilkins 9711b04e00 More generous test timeouts
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2022-12-05 16:27:41 +11:00
Simone Bordet 346a59197b
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-01 18:04:54 +01:00
Simone Bordet 9f4bc5e5e2
Added test to external server via HttpClientTransportOverHTTP3.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-12-01 11:06:33 +01:00
Ludovic Orban 63f1126abc offer EOF data when header frame has the last flag set to true before calling notifyHeaders()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-11-29 09:31:49 +01:00
Ludovic Orban 12e48a7241 replace FSM with SerializedInvoker
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-11-29 09:31:49 +01:00
Greg Wilkins eec5e69079
Converted writeTrailers to a static method (#8940)
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2022-11-29 15:08:36 +11:00
Greg Wilkins 011a7267de
Cleanup ContextHandler (#8928)
* Cleanup ContextHandler

Extracted some of the goodness from #8793:
 + Clear enter/exit scope methods rather than opaque suppliers and Runnables
 + Removed overloading of "Context" class name to avoid accidental usage of wrong type.
 + Less holding onto request/response as fields

* Cleanup ContextHandler

fixed test with no server

* Updates from review.
2022-11-25 14:27:39 +11:00
Greg Wilkins 09594361a1
Jetty-12 Rewrite RuleProcessor (#8934)
* Rewrite RuleProcessor

This decouples the rewrite module from the `WrapperProcessor` class, which is being considered for significant refactoring or removal.
Having a module specific version of that class allows better code readability and a more appropriate API that avoids duplication request instances.

* Fixed javadoc

* Updates from review.

* Updates from review.
2022-11-25 14:27:21 +11:00
Lachlan a0a8acd8b9
Merge pull request #8935 from eclipse/jetty-12.0.x-byteranges
Re-enable DefaultServletRangesTest and fix byte ranges for ee10
2022-11-25 10:27:33 +11:00
Greg Wilkins ca3055423a
Mutable server MimeTypes (#8933)
Make the MimeTypes available from the server mutable.
Context MimeTypes are now wrappers over the server MimeTypes, so configuration at the server level is inherited by all contexts.
2022-11-24 16:57:29 +11:00
Lachlan Roberts c8d22c72ea Re-enable DefaultServletRangesTest and fix byte ranges for ee10
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-11-24 14:10:41 +11:00