Commit Graph

1948 Commits

Author SHA1 Message Date
Lachlan Roberts 86ea115e1f Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-06-04 09:27:43 +10:00
Lachlan Roberts 38f56f5973 make some test methods public to fix build
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-04 09:26:35 +10:00
Joakim Erdfelt 0cce039e7c
Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-06-03 16:10:41 -05:00
Ludovic Orban e43c98f08d Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 17:58:01 +02:00
Ludovic Orban 6c62157865 Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 16:30:26 +02:00
Lachlan Roberts 286ee6868a Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-06-03 12:36:10 +10:00
Lachlan f671cf6512
Merge pull request #4884 from lorban/jetty-9.4.x-4877-pathSpec
Refactor PathSpec and fix javax.websocket URI Template matching
2020-06-03 11:50:09 +10:00
Joakim Erdfelt 5d6f3e2ddc Updating to version 9.4.30-SNAPSHOT 2020-05-21 13:42:25 -05:00
Joakim Erdfelt 77c232aed8 Updating to version 9.4.29.v20200521 2020-05-21 12:04:14 -05:00
Ludovic Orban e0391a5ea8 replace LogicalDeclarationComparator with Comparator.comparing
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-20 17:06:17 +02:00
Joakim Erdfelt 5c2f00c1f5 Issue #4776 - Adding different length tests to WebSocketUriMappingTest
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-20 17:05:18 +02:00
Joakim Erdfelt 0234ead671 Issue #4776 - Making PathMappings._mappings use LogicalDeclaration sort
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-20 17:05:18 +02:00
Joakim Erdfelt 79e76544ff Issue #4776 - UriTemplatePathSpec sorting on simplified path spec.
+ Moved testcase to jetty-http (better place for it)
+ Introduced simplified path spec to aid in sorting
+ Made .getMatches(String) return sorted list by best match.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-20 17:05:18 +02:00
Ludovic Orban 85a5452f49 Issue #4877 - refactor PathSpec into an interface whose implementations use final fields
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-20 17:03:07 +02:00
Joakim Erdfelt 822d98b023
Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-11 21:16:59 -05:00
Joakim Erdfelt d127db5186
Merge branch 'jetty-9.4.x-4860-NullHttpFields' of github.com:eclipse/jetty.project into jetty-9.4.x-4860-NullHttpFields 2020-05-11 17:26:05 -05:00
Joakim Erdfelt 4dc024b2b1
Issue #4860 - Fixing test comment
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-11 17:25:49 -05:00
Greg Wilkins 59a66158ed Issue #4860 NPE HttpFields
Fixes from review.
Fixed iterator overflow bug
clearer updates of size
better nonNull messages

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-11 22:09:19 +02:00
Joakim Erdfelt 6ae75be9bc
Issue #4860 - Consistency to HttpFields API
If a null name (or HttpHeader or HttpField) is used
it should throw an ISE

+ .add() should remain consistent
+ .put() should remain consistent

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-11 10:34:52 -05:00
Joakim Erdfelt 90da10dac5
Issue #4860 - Improving testPreventNullField testcase
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-11 10:05:56 -05:00
Joakim Erdfelt 2c7c98f469
Eliminate warnings
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-05-11 10:03:12 -05:00
Greg Wilkins 1ac7fe4f9c Issue #4860 NPE from HttpFields
+ Fix bug with list iterator nextIndex
 + List iterator cannot inject null fields
 + minor cleanups

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-11 14:00:04 +02:00
Greg Wilkins 6af6af6419 Issue #4860 NPE from HttpFields
Improved test coverage

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-05-11 13:58:27 +02:00
Greg Wilkins 8c7e34f37d
Jetty 10.0.x immutable meta data (#4777)
Made HttpURI, HttpFields and MetaData immutable.  The first two follow the same builder pattern and MetaData is constructor injection only.

* Immutable version of HttpFields

Preserve API and usage of HttpFields class while providing a read only interface and immutable implementation.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable version of HttpFields

Use an ArrayList in HttpFields. While slightly slower than the array, it will mostly be used as a builder pattern for an Immutable

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable version of HttpFields

Fixed exception type.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable version of HttpFields

asImmutable method

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

Made HttpURIU immutable with a builder pattern.
MetaData immutable and working within http module.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

Fixes from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

Passing tests upto and including jetty-server

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

Cleanup of HttpURI.Builder API as suggested in PR.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

Added builder for MetaData.Request

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

more api fixes

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

WIP making HttpFiels itself immutable.  Currently working up to jetty-servlet.

Need to consider if content-length really is meta data and how much and when can we trust it.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

WIP

Need to consider if content-length really is meta data and how much and when can we trust it. Also need to consider difference between h2 and h1 authority in metadata.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

jetty-client and jetty-servlet passing tests.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

Better align the style of immutability between `HttpFields` and `HttpURI`.
They both now have static build() and from() methods, plus Builder and Immutable implementations.
Potentially `Builder` could be renamed as `Mutable`

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

http2-server tests passed

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

http2-client tests passed

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

cleann build?

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

fix

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

more test fixes

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

Cleanups, mostly using EMPTY when appropriate.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

Cleanups, use immutable

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

No trailers for connect

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

Fix CONNECT path handling

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

fixed rewrite query handling

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

rename Builders to Muttables

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

misc cleanups

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

Revert to using arrays due to garbage generated by streams and iterators (12% of a simple benchmark!).
Even if this garbage is an artifact of the JIT being disabled by observation, it can hide other allocations, so best to just use simple arrays!

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

More optimizations and better test coverage.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable Metadata

various cleanups

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

More optimizations

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

review changes

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable
 + more usage of EMPTY
 + restored fragment handling

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable
 + less usage of asImmutable

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

changes after review:
 + better handling of URI in ContextHandler

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

changes after review:
 + downcast in test to access mutable response headers.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Immutable MetaData

changes after review:
 + use put instead of add for one time headers

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* private

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-04-28 13:36:44 +02:00
Simone Bordet da651e995f Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-04-14 23:37:26 +02:00
Simone Bordet 3e96bf8621 Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-4764-http2_content_length'. 2020-04-14 11:45:48 +02:00
Simone Bordet 2e85b3e169 Fixes #4764 - HTTP2 Jetty Server does not send back content-length.
Updates after review.
Now the Content-Length header is generated by HpackEncoder based on
MetaData.contentLength, so that the MetaData.HttpFields are not modified.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-04-14 11:44:58 +02:00
Joakim Erdfelt 5699b9ff3d Updating to version 9.4.29-SNAPSHOT 2020-04-08 13:15:04 -05:00
Joakim Erdfelt ab228fde9e Updating to version 9.4.28.v20200408 2020-04-08 12:33:56 -05:00
Jan Bartel bfc9738f86
Issue #4760 Response.setLocale should override previous (#4761)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-04-08 17:28:14 +02:00
Greg Wilkins 4837fe1c86 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-03-30 16:41:05 +02:00
Greg Wilkins e913e7970f
Fixes #4542 Root pathspec mapping pathInfo (#4705)
* Fixes #4542 Root pathspec mapping pathInfo

For the "" root pathspec, the pathinfo should always be the full path and the matched path is ""

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* updates from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-03-30 16:38:42 +02:00
Greg Wilkins e3d670d61d
Issue #4713 Async dispatch with query. (#4721)
* Issue #4713 Async dispatch with query.

+ Preserve the entire URI with query when startAsync(req,res) is used.
+ merge any query string from dispatch path with either original query or preserved query from forward

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #4713 asyncDispatch with query parameters

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-03-30 16:23:26 +02:00
Lachlan af899b0e68
Merge pull request #4602 from eclipse/jetty-10.0.x-4340-ServiceLoader
Issue #4340 - Continue after ServiceLoader ServiceConfigurationError
2020-03-25 10:30:38 +11:00
Joakim Erdfelt 43419802b7
Issue #4685 - Declare <scope> for jetty-slf4j-impl everywhere
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-20 11:12:08 -05:00
Joakim Erdfelt 9492a5379c
Issue #4685 - eliminate <version> in jetty-slf4j-impl
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-20 10:42:36 -05:00
Lachlan Roberts 04cecaaaef Issue #4340 - Change usages to more closely follow previous behaviours
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-20 17:02:49 +11:00
Joakim Erdfelt a16abe1693
Issue #4685 - jetty-slf4j-impl not a compile/runtime dependency.
+ Mark as a test dependency

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-19 17:46:41 -05:00
Lachlan Roberts c658ae7056 Issue #4673 - fix MultiPart parsing for content split in boundary
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-18 11:22:40 +11:00
Lachlan Roberts 30d36ed68c Merge branch jetty-10.0.x into jetty-10.0.x-4340-ServiceLoader
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-17 15:00:30 +11:00
Joakim Erdfelt 57604d0955
Issue #4572 - Mechanical Change to use org.slf4j
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-16 15:48:25 -05:00
Joakim Erdfelt 8b7e64915f
Issue #4572 - Replace Jetty Logging with SLF4J
* Introducing jetty-slf4j-impl
* Make Jetty use org.slf4j
* Removed most of org.eclipse.jetty.util.log classes
* Left org.eclipse.jetty.util.log.Log and
       org.eclipse.jetty.util.log.Logger but as
  simple bridge classes that are deprecated
* Migrated code using org.eclipse.jetty.util.log.StacklessLogging
  to org.eclipse.jetty.logging.StacklessLogging found in
  the jetty-slf4j-impl
* Moved logging start modules from jetty-util to jetty-home
* Simplified logging start modules
* Updated code that was using StdErrLog directly
* Updating module-info.java for org.slf4j
* removing org.eclipse.jetty.util.log.class references
* jetty-start supports manually declared default provider
  + and we use it to default "logging" to the "logging-jetty" provider
* Cleaning up jetty-maven-plugin and IT testing for Logging
* Using old slf4j for it testing
* Updating compiler config to show Xlint:exports warnings
* Updating console-capture and logging-noop
* Adding slf4j bridge (capture) jetty modules
* Updates to jetty logging module locations
* Changing reference to slf4j dependent mod
* Process requested enabled modules in topological order
* Limiting inclusions in shaded jetty-start
  + Also adding note to jetty-util classes that are used by
    jetty-start
* Default logging level on baseline logging config is INFO (not DEBUG)
* Changing from system to server classes in logging
* Updating other modules to use new logging names

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-16 11:21:54 -05:00
Lachlan Roberts 7af220dade Issue #4340 - shortcut method for the serviceStream
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-16 09:42:32 +11:00
Lachlan Roberts edd671146d Issue #4340 - ServiceLoader stream which doesn't break if hasNext throws
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-13 16:59:33 +11:00
Lachlan Roberts 355d21317b Issue #4340 - Changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-02 10:16:38 +11:00
Lachlan Roberts 97c55e27cc Issue #4340 - remove TypeUtil.load and use flatMap() on streams instead
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-29 11:06:32 +11:00
Lachlan Roberts 6832912d49 Issue #4340 - Implement TypeUtil.load(ServiceLoader) with Streams
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-28 12:15:27 +11:00
Joakim Erdfelt 8aabb52557 Updating to version 9.4.28-SNAPSHOT 2020-02-27 13:03:44 -06:00
Joakim Erdfelt a304fd9f35 Updating to version 9.4.27.v20200227 2020-02-27 12:21:57 -06:00
Lachlan Roberts a277c30b81 Issue #4340 - Move ServiceLoaderUtil.load method to TypeUtil.loadAll
- increase MAX_ERRORS to 1000
- introduce a loadFirst method

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-26 10:26:29 +11:00