Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Go to file
Joakim Erdfelt ad5f8c4d15
Proof of concept URIUtil.isHostName
2023-04-19 14:38:22 -05:00
.github Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-03-24 13:44:13 -05:00
.mvn Enable errorprone and spotbugs for java 17 (#7604) 2022-02-17 10:12:01 +10:00
build Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-04-05 19:10:07 +02:00
documentation Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00
javadoc Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00
jetty-core Proof of concept URIUtil.isHostName 2023-04-19 14:38:22 -05:00
jetty-ee8 Jetty 12 - Review BOMs (#9551) 2023-03-29 16:34:02 -05:00
jetty-ee9 Fixes #9438 - Jetty 12: Review JakartaWebSocketClientContainer use of… (#9626) 2023-04-13 09:50:18 +02:00
jetty-ee10 Issue #9640 Fix servlet mapping for named forwards (#9642) 2023-04-14 01:59:23 +10:00
jetty-home Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00
jetty-integrations Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-02-15 15:31:33 +11:00
jetty-p2 Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00
logos Issue #4572 - Mechanical Change to use org.slf4j 2020-03-16 15:48:25 -05:00
tests Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00
.gitattributes Updating attributes 2020-09-25 09:48:38 -05:00
.gitignore Initial Dependency Update Reports 2023-03-08 15:12:28 -06: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
CONTRIBUTING.md Testing gpg signature setup 2019-09-25 12:42:32 -05:00
Jenkinsfile Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-03-08 14:31:45 -06:00
Jenkinsfile-autobahn Jetty 12.0.x publish dependency report (#9504) 2023-03-16 13:06:05 +10: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 and developer tag 2020-11-04 17:25:11 +01:00
LICENSE Issue #5784 - Fixing LICENSE file 2020-12-10 15:45:35 -06:00
NOTICE.txt Issue #4568 - update to use jakarta.servlet 5.0.0 2020-03-31 14:54:59 +10:00
README.md Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-04-05 19:10:07 +02:00
SECURITY.md Update SECURITY.md (#9333) 2023-02-14 08:30:51 -06:00
VERSION.txt Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-04-19 11:58:39 -05:00
header-template.txt Happy no year 2023-02-15 15:22:32 +11:00
inceptionDates.csv Rename process to handle (#9385) 2023-02-16 18:21:12 +01:00
pom.xml Updating to version 11.0.16-SNAPSHOT 2023-04-11 13:53:30 -05:00

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.

Webapp Example

$ mkdir base && cd 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 base && cd 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 Example

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

Documentation

Project documentation is available on the Jetty Eclipse website.

Building

Apache Maven 3.8.0 and OpenJDK requirements:

Branch Maven Version Minimum JDK Recommended JDK
jetty-10.0.x Maven 3.8.6+ OpenJDK 11 OpenJDK 17 (for optional loom and http/3 support)
jetty-11.0.x Maven 3.8.6+ OpenJDK 11 OpenJDK 17 (for optional loom and http/3 support)
jetty-12.0.x Maven 3.8.6+ OpenJDK 17 OpenJDK 17

Full Build with All Tests:

mvn clean install

Fast Build if you need jars and distribution (not running tests, checkstyle, enforcer, license check):

mvn -Pfast clean install

Optional build tools:

  • graphviz - used by asciidoctor in the jetty-documentation build to produce various graphs
  • Docker - used to run some integration tests for testing third party integrations

Once the build is complete, you can find the built Jetty Maven artifacts in your Maven local repository. Along with the following locations of note:

Branches Location Description
all jetty-home/target/jetty-home-<ver>.tar.gz The Jetty Home standalone tarball
jetty-10.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner uber jar
jetty-11.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner uber jar
jetty-12.0.x jetty-ee10/jetty-ee10-runner/target/jetty-ee10-runner-<ver>.jar The Jetty Runner uber jar for ee10/Servlet 6 (jakarta.servlet) webapps
jetty-12.0.x jetty-ee9/jetty-ee9-runner/target/jetty-ee9-runner-<ver>.jar The Jetty Runner uber jar for ee9/Servlet 5 (jakarta.servlet) webapps
jetty-12.0.x jetty-ee8/jetty-ee8-runner/target/jetty-ee8-runner-<ver>.jar The Jetty Runner uber jar for ee8/Servlet 4 (javax.servlet) webapps

Note: 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 (check your ulimit -n value).

Professional Services

Expert advice and production support are available through Webtide.com.