* Made WebSocket over HTTP/2 work.
Re-enabled tests, and restored HTTP2StreamEndPoint,
as well as implemented getTunnelSupport() for HTTP/2.
Removed from HttpStream methods for upgrade that are
not necessary anymore.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Cherry-pick of Improvements to PathSpec.
* From commit: 5b4d1dd1c6
* Fixing ConstraintSecurityHandler usage of PathMappings
* Fixing bad INCLUDE logic from cherry-pick in ServletHandler.doScope()
* Cleanup of non ServletPathSpec behaviors in ServletPathMapping class
* Skip optional group name/info lookup if regex fails.
* Prevent NPE on static servletPathMappings
* Update WebSocketMappings to use new PathMappings.getMatched(String)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
+ Sanity check Resource being provided
+ Descriptor toString changed to include full URI to descriptor
so that it can be used consistently in Logging and Exception messages.
+ New Descriptor.toURI() for use in Servlet Source and other logging messages
+ Servlet Source value is now the URI of the Descriptor
+ More cleanup around `Source` location/name
.getResource() must be a Resource
as it's used in the AnnotationIntrospector
all others use new .getName()
Not all location/name usages can be loaded as
a Resource.
* Delay Resource alias calculation until it's requested.
* Rename .getAlias() to .getTargetURI()
* PathResource resolveTargetAliasPath to resolveTargetPath
* Produce XHTML output with tests that validate the XHTML.
* Adding ResourceListingTest and ensuring ResourceListing output is well formed.
* Introduce non-directory entry in ResourceListing test for ResourceCollection
* Restored interim responses functionality (100 Continue, 102 Processing, 103 Early Hints) for core, ee9 and ee10.
Added ProcessingProtocolHandler and EarlyHintsProtocolHandler for the client.
Re-enabled all tests for interim responses for all protocols.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* QuickStart generation based on Path, usage based on Resource
* QuickStart usage in jetty-maven-plugin uses Path
* Cleanup MavenWebAppContext constructor exceptions
* Improving quickStart stream filtering and array conversion
* Creating WEB-INF, if missing, now more reliable
Let websocket-core handle any idleTimeout & writeTimeouts instead of bad attempt to do it in Jetty/Javax API layers.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Properly implemented request and response trailers for all the transports, both client and server.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Remove Resource.getWeakETag in favor of new EtagUtils
* Protect bad usages of CachingContentFactory
* Working precompressed content for ResourceService
* Fixing DefaultServlet handling of ResourceService.writeHttpError() overrides
* Protect NPE in CachingContentFactory.isValid()
* Complete callback in DefaultServlet.writeHttpError
* Addressing review comments
* Testing for whole content
* Improve MemoryResource handling of name/filename
* EtagUtils handling of Resource
* Better protection of bad Resource impls in EtagUtils
* Update CachingContentFactory
+ Using Resource.lastModified were possible
+ CachingHttpContent has better Resource
protection, and uses Etag from delegate
+ CachingHttpContent uses delegate where
possible.
+ Store Etag HttpField in CachingHttpContent
and allow override in constructor
* Simpler CachingHttpContent.isValid()
* Better handling of PrecompressedHttpContent
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Issue #8474 - Resource.list and Resource.getFileName work
* Correcting signature of Resource.list and use it
* Introduce Resource.getFileName and use it
* Adding URIUtil.addPath() test to show file+str behavior
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
add back jetty-ee8-maven-plugin
- add back jetty-ee8-jspc-maven-plugin
- remove not used site plugin and simplify code
- moving back ee9 maven plugin ITs to the module
- back of ee10 maven ITs test to the plugin module
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
Moved ConnectHandler to org.eclipse.jetty.server.handler, where it should have been from the start.
Cleaned up and corrected behavior of SecureRequestCustomizer.
Now the response is wrapped with isSecure=true if it arrived over a secure transport.
The request URI scheme indicates whether the request is secure towards the origin server.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Javadoc generation for the jetty-quic-quiche-* modules may need
to use a <profile> since the APIs used depend on the Java version.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* ee8 demos to use ee9 demos resources
* add jetty-ee8-demo-jaas-webapp
* add jetty-ee8-demo-jndi-webapp jetty-ee8-demo-mock-resources
* uhm jetty-ee8-demo-jetty-webapp have some issues
* fix jetty-ee8-demo-jetty-webapp
* fix some jetty-ee9-demo-embedded and add back jetty-ee8-demo-proxy-webapp
* demo-embedded need to have jetty-ee9-demo-jsp-webapp built first
* fixing more demos modules. Activate dist test for demo modules and all env
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
* 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>
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>