Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Go to file
Simone Bordet d0ea445d2d
Fixes #12122 - NPE in HttpReceiver.responseContentAvailable(). (#12123)
Now also the HttpReceiver.responseContentAvailable() is serialized, so that the access to `this.contentSource` is serialized with failure, and protected by a call to `exchange.isResponseCompleteOrTerminated()`.

Before, it was possible that a thread failed the response, nulling out `this.contentSource`, while another thread was just about to call `responseContentAvailable()` -- this was the case for HTTP/2 in particular, where content is notified asynchronously, rather than being created by a call to `ContentSource.read()`.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-07 18:30:51 +02:00
.github Ignoring org.apache.maven.plugin-tools:* in dependabot for jetty-9.4.x 2024-07-16 12:44:05 -05:00
.mvn add target/jetty-home as part of the cache as it is useful with jetty-home module (#12090) 2024-07-26 02:58:46 +02:00
build Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
documentation Made documentation modules more friendly to IDE. 2024-08-04 14:48:22 +02:00
javadoc Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
jetty-core Fixes #12122 - NPE in HttpReceiver.responseContentAvailable(). (#12123) 2024-08-07 18:30:51 +02:00
jetty-ee8 invoker:install should include test dependencies as well as they are used by the tests, this issue can happen only when not snapshots have been deployed of demos new versions 2024-07-31 08:07:55 +10:00
jetty-ee9 Issue #12124 fix jsp scratchdir location for ee9. (#12129) 2024-08-06 09:11:16 +10:00
jetty-ee10 Issue #12124 fix jsp scratchdir location for ee9. (#12129) 2024-08-06 09:11:16 +10:00
jetty-home Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
jetty-integrations Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
jetty-p2 Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
logos Issue #4572 - Mechanical Change to use org.slf4j 2020-03-16 15:48:25 -05:00
tests Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
.gitattributes Updating attributes 2020-09-25 09:48:38 -05:00
.gitignore Jetty 12.0.x test launchable to detect flaky tests (#11983) 2024-07-12 04:01:32 +02:00
.lgtm.yml Bump java_version to 17 2022-12-14 13:48:52 -06:00
CODE_COVERAGE.md http-spi test improvement (#62) 2016-05-04 10:56:56 +10:00
CODE_OF_CONDUCT.md Fixes #10107 (#10109) 2023-07-14 13:43:40 -05:00
CONTRIBUTING.md Update URLs for new jetty locations 2024-06-21 13:33:46 -05:00
Jenkinsfile Jetty 12.0.x test Jenkins JUnitFlakyTestDataPublisher (#11984) 2024-07-16 13:28:17 +02:00
Jenkinsfile-dependency-report Jetty 12.0.x publish dependency report (#9504) 2023-03-16 13:06:05 +10:00
Jmh_Jenkinsfile Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-07-09 12:57:26 +10:00
KEYS.txt Add GPG key in KEYS.txt 2024-07-08 17:06:12 +10:00
LICENSE Issue #5784 - Fixing LICENSE file 2020-12-10 15:45:35 -06:00
NOTICE.txt Update URLs for new jetty locations 2024-06-21 11:38:22 -05:00
README.md Update URLs for new jetty locations 2024-06-21 13:33:46 -05:00
SECURITY.md Update gitlab@eclipse CVE assignment link 2024-07-15 10:09:02 -05:00
VERSION.txt Updating to version 12.0.13-SNAPSHOT 2024-07-25 17:23:21 -05:00
header-template.txt Happy no year 2023-02-15 15:22:32 +11:00
pom.xml Now the documentation has been migrated to Antora, so there is no need for the Java Asciidoctor plugin, and the directories that previously held the documentation using the Asciidoctor Maven plugin. 2024-08-03 18:08:17 +03:00

README.md

Eclipse Jetty

Eclipse Jetty is a lightweight, highly scalable, Java-based web server and Servlet engine. Jetty's goal is to support web protocols (HTTP/1, HTTP/2, HTTP/3, WebSocket, etc.) 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 asynchronous web server that has a long history as a component oriented technology, and can be easily embedded into applications while still offering a solid traditional distribution for webapp deployment.

Webapp Example

$ mkdir jetty-base && cd jetty-base
$ java -jar $JETTY_HOME/start.jar --add-modules=http,ee10-deploy
$ cp ~/src/myproj/target/mywebapp.war webapps
$ java -jar $JETTY_HOME/start.jar 

Multiple Versions Webapp Example

$ mkdir jetty-base && cd jetty-base
$ java -jar $JETTY_HOME/start.jar --add-modules=http,ee10-deploy,ee8-deploy
$ cp ~/src/myproj/target/mywebapp10.war webapps
$ cp ~/src/myproj/target/mywebapp8.war webapps
$ echo "environment: ee8" > webapps/mywebapp8.properties
$ java -jar $JETTY_HOME/start.jar 

Embedded Jetty Example

Server server = new Server(port);
server.setHandler(new MyHandler());
server.start();

Embedded Servlet Example

Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler("/");
context.addServlet(MyServlet.class, "/*");
server.setHandler(context);
server.start();

Building Jetty from Source

$ git clone https://github.com/jetty/jetty.project.git
$ cd jetty.project
$ mvn -Pfast clean install # fast build bypasses tests and other checks

For more detailed information on building and contributing to the Jetty project, please see the Contribution Guide.

Documentation

Jetty's documentation is available on the Eclipse Jetty website.

The documentation is divided into three guides, based on use case:

  • The Operations Guide targets sysops, devops, and developers who want to install Eclipse Jetty as a standalone server to deploy web applications.

  • The Programming Guide targets developers who want to use the Eclipse Jetty libraries in their applications, and advanced sysops/devops that want to customize the deployment of web applications.

  • The Contribution Guide targets developers that wish to contribute to the Jetty Project with code patches or documentation improvements.

Commercial Support

Expert advice and production support of Jetty are provided by Webtide.