* Adding Servlet 6 XML Entities
* Fixing bad xsi:schemaLocation entries
* Update all jetty-ee10 web XMLs to JakartaEE version 6.0 based
* Using XML Catalog
* Introducing catalogs for:
- default XML xsd/dtd (catalog-org.w3.xml)
- Configure dtd (catalog-configure.xml)
- EE10 Servlet 6 xsd/dtd (catalog-ee10.xml)
- EE9 Servlet 5 xsd/dtd (catalog-ee9.xml)
- EE8 Servlet 4 xsd/dtd (catalog-ee8.xml)
* New XmlParser.addCatalog(URI catalogXml, Class<?> classBase)
to allow the loading of a catalog which has it's resources
referenced via the classBase.getResource(name)
* WebDescriptor uses Environment to load appropriate catalog.
* Remove XmlParser.redirectEntity(String, String)
* Improved FileID.isHidden
* Simplified AnnotationParser
+ Not using MultiReleaseJarFile
+ Walk of a Directory or a JAR is the same
+ Reduced parse method count
+ Fixed TestAnnotationParser
Using proper fully qualified classnames now (were not yet converted over to jetty-12 naming)
* Single parseClass method
* Single parseDir method
* Adapting ee9 AnnotationParser to have the same behaviors as ee10.
* Deleting TestAnnotationInheritance tests
+ We don't want the AnnotationParser
creating new Resource objects for Class.getSuperClass()
resources that don't belong to
the same Resource that the passed
in class belongs to (as this is out of
scope for the Mount management).
Imagine if told to parse ClassB
which extends from ClassFoo, which
is in a different JAR than ClassB?
This concept from Jetty 9/10/11
was only used in testcases and not
in live runtime code, so it was
removed.
Co-authored-by: Olivier Lamy <oliver.lamy@gmail.com>
Renamed FutureFormFields to just FormFields, as it is mostly used
as a CompletableFuture, and the "Future" prefix is soo Java 5 :)
Improved releasing of chunks in FormFields implementation.
Improved configuration of FormFields for max number of fields and max form content length.
Fixed Field.toString().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Now all the logic for completion is in lockedOnComplete().
Avoid throwing in ChannelCallback.succeeded() if HttpChannelState._error != null.
This is necessary because HttpChannelState._error may be set asynchronously by
some event such as HTTP/2 reset streams or idle timeouts, but if there is a
thread dispatched to the application the asynchronous event will not fail the
callback, as the failure may be noticed by the application (e.g. via a read() call).
Fixed TrailersTest.testHandlerRequestTrailers() by avoid reading again after
having read the trailers.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
Moved multipart test files to jetty-http.
Introduced jetty-http `MultiPart` class and made `MultiPart.Parser` non-blocking and lenient on newlines.
Made `MultiPartCaptureTest` to pass.
Moved o.e.j.server.MultiPartParserTest tests to o.e.j.http.MultiPartTest.
Renamed MultiPartFormInputStreamTest to MultiPartsTest.
Introduced class o.e.j.server.MultiParts, a CompletableFuture of Parts
that can be used asynchronously in Handlers and in general in core Jetty.
Implemented multi-part handling in ee10.
Implemented DelayedHandler.UntilMultiPart.
Introduced MultiPart.ContentSource as the multipart "generator".
Replaced ByteBuffer/boolean pair with Chunk and implement Chunk slicing & improve retainability for MultiPart parser.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>