Commit Graph

258 Commits

Author SHA1 Message Date
Lachlan Roberts 8f27e9a463 ee9 should use jett-core protected targets and alias checkers
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-08-11 13:59:54 +10:00
Jan Bartel 42f72268cf
Jetty 12 : #8408 Support new `<cookie-config>` concepts in Servlet 6 (#8420)
* Issue #8408 Implement new session cookie attributes
2022-08-10 16:33:08 +10:00
Joakim Erdfelt fe21198499
Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-rework-resource-factory 2022-08-05 11:11:39 -05:00
Joakim Erdfelt 58eea0541c
Allow ResourceHandler to serve content from base resource 2022-08-04 17:22:02 -05:00
Joakim Erdfelt 19039f4df8
Remove maxBuffer from ContentFactory.getContent(String) (#8403) 2022-08-04 17:32:50 +02:00
Joakim Erdfelt d97ab506f7
Improved version based on review 2022-08-04 09:15:13 -05:00
Joakim Erdfelt 1f1b9dc2dc
Better handling of jetty-dir.css and favicon.ico 2022-08-04 08:37:56 -05:00
Ludovic Orban 7a28563bcc move toURI to URIUtil
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-08-03 17:04:22 +02:00
Ludovic Orban 5ca51c97ad hide ResourceFactory internals and cleanup Mount leftovers
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-08-03 16:59:02 +02:00
Ludovic Orban fb0290c88a replace ROOT references with root()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-08-03 12:51:57 +02:00
Ludovic Orban abe2f3264a move newClassPathResource to ResourceFactory
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-08-03 12:23:49 +02:00
Ludovic Orban f943d095f4 rework ResourceFactory and Resource according to redux3 prototype
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-08-03 11:32:21 +02:00
Joakim Erdfelt a45dc385c8
Refactor our Resource.getListHTML to utility class 2022-08-02 10:06:11 -05:00
Joakim Erdfelt c6c0eb0313
Jetty-12 : Immutable ResourceCollection and Context based mount management (#8337)
* Immutable ResourceCollection with mount management.

* Internal List<Resource> is now immutable so that .getResources() cannot be modified.
* Improved Resource.toJarFileUri implementation that keeps the deep archive references
* Introducing Resource.mountCollection() methods
  + ResourceCollection is now a private class
  + Resource.mountCollection() returns a Mount
  + Places that use this technique are now putting the Mount in the context's beans for the context to close those mounts.
* Cleanup names/comments in FileSystemResourceTest
* Adding missing test of attempting to create a Resource from a URI `jar:file:foo.jar!/` while not mounted.
* Reworked ResourceCollection behaviors based on feedback.
  + Eliminated all Resource.mountCollection() methods except the Collection<URI> one.
* Eliminated Resource.mountIfNeeded(Resource)
* Eliminated Resource.fromList implementations
* Introduced @gregw Resource.of() implementations
* Introduced Resource.split() to honor old split logic from Jetty 9/10/11, with glob support, but now it only converts to List<URI>
* Remove IOException from Mount.root() method
* ResourceCollection now flattens and uniques any nested ResourceCollection entries it encounters
* Expanded ResourceCollectionTest to cover more code paths
* Add ResourceTest for new split() method
* Fixing testcase to use a directory that exists on setExtraClasspath
* Increase reliability of WebAppContextTests
* Updates for working with webapp.extraClasspath
* Introduced Resource.unwrapContainer to help in servlet cases where the raw JAR path should be represented in a ServletContext attribute.
* Made FileSystemPool.containerUri just use new Resource.unwrapContainer
* webapp MetaData updated to use URIs references to Libs (not File objects)
* jetty-ee#-maven-plugin use URIs for its classpath tracking to aid in mounting issues later
* webapp extraClasspath supports raw JAR references as well as glob now, supported by Resource.split(String)
2022-07-28 08:59:17 -05:00
Ludovic Orban 4856a7d065 keep, un-deprecate and rename Resource.getReadableByteChannel() and Resource.getInputStream()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-07-27 16:04:22 +02:00
Greg Wilkins 2275e1c2c6
Refactored MultiException into ExceptionUtil (#8340) 2022-07-27 18:07:57 +10:00
Greg Wilkins d369adf55b
Jetty 12.0.x canonical uri (#8343)
Somehow the URIUtil class had switched over the meaning of normal and canonical. This PR renames them to correct this:
 * canonical paths are always normal
 * Always canonicalize paths passed from the application
 * Switch the URIUtil names for canonical and normal
2022-07-27 09:58:50 +10:00
Ludovic Orban 38d22f3153 #8285 - improve Resource to mapped ByteBuffer logic
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-07-26 13:47:44 +02:00
Simone Bordet 69a7b06f06
Jetty 12.0.x retainable chunk (#8325)
Made Chunk implement Retainable, and protocol implementations
to link the RetainableByteBuffer all the way to the Chunk.

Extended Retainable to have both a retain() and a release() methods.

Removed HTTP/2's ISession and IStream, now just using HTTP2Session and HTTP2Stream.
Removed *.Adapter classes in favor of interfaces with default methods.

Javadoc additions and clarifications.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-07-25 13:22:14 +02:00
Simone Bordet 8cb09e4c59
Re-enabled jetty-ee9-proxy and jetty-ee10-proxy modules. (#8289)
* Re-enabled jetty-ee9-proxy and jetty-ee10-proxy modules.
Introduced TunnelSupport to abstract out the tunnelling capabilities.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-07-22 13:36:47 +02:00
Joakim Erdfelt 7fb119bb32
Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-07-18 12:50:16 -05:00
Greg Wilkins cdc1b079ae ee8 ee9 ee10 webapp demos
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2022-07-14 16:15:22 +10:00
Jan Bartel 825a728d1d Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-ee9-demos 2022-07-13 10:19:43 +10:00
Jan Bartel b6d8bcb7b4 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-ee9-demos 2022-07-13 10:05:35 +10:00
Ludovic Orban be95da326d
Bis: Jetty 12.0.x resource handler and default servlet (#8276)
Made ResourceService use a generic request so it can be used as handler or from servlets.    This is only a temporary solution.

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Greg Wilkins <gregw@webtide.com>
Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-07-13 09:21:27 +10:00
Jan Bartel 34d21dd1ec WIP get ee9 demos working; fix some ee10 demos 2022-07-12 18:23:37 +10:00
Greg Wilkins febfbfca3b For #8285 serve resource from jar
+ fixed ee9-demo-async-rest
+ CachedContentFactory now needs to ignore `UnsupportedOperationException`

I don't think this is a great fix, as throwing an exception in a normal path is not optimal.
2022-07-12 13:04:56 +10:00
Ludovic Orban 23a0203547 rework Resource API (#8106)
* remove Resource.getFile() and replace its usages with Resource.getPath()
* remove all public PathResource ctors + add non-leaky FS mounting mechanism + interpret string as Path when not a schemed URI
* rename Resource.getResource to Resource.resolve, specifying that the subpath is URI-path-interpreted
* remove useless API methods + deprecate all path-related API
* make subpaths beginning with / resolved as relative to the given uri
* introduce filesystem pooling and generalize resource resolving code
* remove URLResource
* remove unneeded factory method
* both file: and jrt: should not be pooled
* move deprecated impls from PathResource down to Resource + fix some tests
* handle Resource's pointing to non-existent jar files
* Force Resource URIs to end with "/" when the resource is a directory
* Produce warning if attempting to release a mounted filesystem uri that doesn't exist in the pool.

Co-authored-by: Greg Wilkins <gregw@webtide.com>
Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2022-07-12 10:10:30 +10:00
Greg Wilkins 676833e57e
Jetty-12 Improved Content testing and javadoc (#8263)
Improved Content javadoc
Fixed ContentSourceTest that was consuming the same ByteBufferSource multiple times.
Using ByteBufferPool.NOOP instead of allocating NoopByteBufferPool.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2022-07-08 14:52:28 +02:00
Greg Wilkins 4c827b986c Minor renaming for clarity
Renamed Blocking to Blocker
Added Handler.Processor.Blocking and Handler.Processor.NonBlocking
2022-07-07 19:38:23 +10:00
Greg Wilkins 8ecb4b8669 Fixed merge 2022-07-04 12:34:53 +10:00
Greg Wilkins fe83ea87dc Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-07-04 11:32:33 +10:00
Greg Wilkins ea5bedf072
Jetty 12.0.x deployment (#8208)
Deploy webapps for different environments from the same webapps directory.
The maximal environment known to the AppProviders is used as the default environment.
An explicit environment can be set in a properties file for an application, which is also used for property substitution in any context xml file.
2022-06-30 09:51:19 +10:00
Greg Wilkins 6b1dfec971 reenabled more ee9 modules 2022-06-15 10:05:56 +10:00
Simone Bordet 77825755cc
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-06-13 15:13:57 +02:00
Joakim Erdfelt d1e5ffa4d9
Merge branch 'jetty-11.0.x' into jetty-12.0.x 2022-06-09 09:04:44 -05:00
Joakim Erdfelt d959b6c683
Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-06-01 14:11:22 -05:00
Simone Bordet cbeeb67e93
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-06-01 15:18:53 +02:00
Simone Bordet 7a6ccce49a
Rewrite of the content handling, both on client and on server. (#7985)
Introduced a new io.Content class, with Content.Source, Content.Sink and Content.Chunk.

Updated the server-side to use io.Content instead of the previous server-side Content class.
Updated the client-side to use io.Content with a little specialization necessary for clients only.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2022-05-30 13:34:51 +02:00
Jan Bartel 75cd28405a Enable more ee9 servlet tests 2022-05-25 14:07:41 +10:00
Jan Bartel 39c5395fb1 Add --reads org.eclipse.jetty.logging to surefire config 2022-05-24 20:34:13 +10:00
Greg Wilkins e72f6c96c4
Jetty 12.0.x cookie cache rewrite (#8047)
Cookies from requests on same connection bleed into each other

* Rewrote CookieCache

Co-authored-by: Jan Bartel <janb@webtide.com>
2022-05-24 16:44:53 +10:00
Olivier Lamy dd26191706 not needed
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2022-05-23 11:14:21 +10:00
Greg Wilkins 73c88bce23 Jetty-12 Work around #8024
This is a work around for #8024.  The exception is still generated, but is handled, at least by the DebugListener.
2022-05-21 10:20:59 +10:00
Greg Wilkins 8677f5fac5 Jetty-12 Deploy
Cleanup dump and environment invocation
2022-05-21 09:56:01 +10:00
Jan Bartel 446b27d6ed WIP deploy webapp; fix thrown exception in doStart 2022-05-20 21:07:50 +10:00
Jan Bartel c8e8f73ed1 WIP deploy ee9 webapps 2022-05-20 17:50:49 +10:00
Lachlan Roberts 63fd8a1a00 fix failure in RequestTest.testMultiPart
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-16 19:06:42 +10:00
Lachlan Roberts 36cf36bc96 disable failing multipart test
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-16 16:20:30 +10:00
Lachlan Roberts 0532e23ba6 Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-05-16 13:02:22 +10:00
Joakim Erdfelt 385f00f72b
Merge remote-tracking branch 'jetty-11.0.x' into `jetty-12.0.x` 2022-05-11 16:52:08 -05:00
Jan Bartel 963251faa4 WIP fix ee9 session tests 2022-05-09 17:22:18 +02:00
Greg Wilkins 5aadbb6006 Call ee9 context listeners 2022-05-09 17:13:20 +02:00
Greg Wilkins b13a2260d2 Doh! 2022-05-09 14:28:52 +02:00
Greg Wilkins 1fcdc2176f Fixed ee9 ContextHandler usage of cached HttpChannel 2022-05-09 13:35:06 +02:00
Jan Bartel 30c85c702e WIP move session tests to ee9 before duplicating to ee10 2022-05-04 15:10:13 +02:00
Greg Wilkins 428a9d568f Reverted to use Resource as BaseResource 2022-05-03 19:28:53 +02:00
Greg Wilkins 04acdb72f0 Jetty-12 Restructure
Copied over non ee10 components from the hackathon branch

Co-authored-by: Greg Wilkins <gregw@webtide.com>
Co-authored-by: Jan Bartel <janb@webtide.com>
Co-authored-by: Joakim Erdfelt <joakim@webtide.com>
Co-authored-by: Lachlan Roberts <lachlan@webtide.com>
Co-authored-by: Ludovic Orban <lorban@webtide.com>
Co-authored-by: Olivier Lamy <olamy@webtide.com>
Co-authored-by: Simone Bordet <sbordet@webtide.com>
2022-05-03 15:50:54 +02:00