8c7e34f37d
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> |
||
---|---|---|
.github | ||
advisories | ||
aggregates | ||
apache-jsp | ||
apache-jstl | ||
build-resources | ||
examples | ||
jetty-alpn | ||
jetty-annotations | ||
jetty-ant | ||
jetty-bom | ||
jetty-cdi | ||
jetty-client | ||
jetty-deploy | ||
jetty-distribution | ||
jetty-documentation | ||
jetty-fcgi | ||
jetty-gcloud | ||
jetty-hazelcast | ||
jetty-home | ||
jetty-http | ||
jetty-http-spi | ||
jetty-http2 | ||
jetty-infinispan | ||
jetty-io | ||
jetty-jaas | ||
jetty-jaspi | ||
jetty-jmh/src/main/java/org/eclipse/jetty/util | ||
jetty-jmx | ||
jetty-jndi | ||
jetty-jspc-maven-plugin | ||
jetty-maven-plugin | ||
jetty-memcached | ||
jetty-nosql | ||
jetty-openid | ||
jetty-osgi | ||
jetty-plus | ||
jetty-proxy | ||
jetty-quickstart | ||
jetty-rewrite | ||
jetty-runner | ||
jetty-security | ||
jetty-server | ||
jetty-servlet | ||
jetty-servlets | ||
jetty-slf4j-impl | ||
jetty-spring | ||
jetty-start | ||
jetty-unixsocket | ||
jetty-util | ||
jetty-util-ajax | ||
jetty-webapp | ||
jetty-websocket | ||
jetty-xml | ||
logos | ||
scripts | ||
tests | ||
.gitattributes | ||
.gitignore | ||
CODE_COVERAGE.md | ||
CONTRIBUTING.md | ||
Jenkinsfile | ||
Jmh_Jenkinsfile | ||
KEYS.txt | ||
LICENSE | ||
NOTICE.txt | ||
README.md | ||
VERSION.txt | ||
header-template.txt | ||
pom.xml |
README.md
Eclipse Jetty Canonical Repository
This is the canonical repository for the Jetty project, feel free to fork and contribute now!
Submitting a patch or pull request?
Make sure you have an Eclipse Contributor Agreement (ECA) on file.
Project description
Jetty is a lightweight highly scalable java based web server and servlet engine. Our goal is to support web protocols like HTTP, HTTP/2 and WebSocket in a high volume low latency way that provides maximum performance while retaining the ease of use and compatibility with years of servlet development. Jetty is a modern fully async web server that has a long history as a component oriented technology easily embedded into applications while still offering a solid traditional distribution for webapp deployment.
Documentation
Project documentation is available on the Jetty Eclipse website.
Building
To build, use:
mvn clean install
The Jetty distribution will be built in jetty-distribution/target/distribution
.
The first build may take a longer than expected as Maven downloads all the dependencies.
The build tests do a lot of stress testing, and on some machines it is necessary to set the file descriptor limit to greater than 2048 for the tests to all pass successfully.
It is possible to bypass tests by building with mvn clean install -DskipTests
.
Professional Services
Expert advice and production support are available through Webtide.com.