c6c0eb0313
* 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) |
||
---|---|---|
.github | ||
.mvn | ||
build | ||
documentation | ||
javadoc | ||
jetty-bom | ||
jetty-core | ||
jetty-ee8 | ||
jetty-ee9 | ||
jetty-ee10 | ||
jetty-home | ||
jetty-integrations | ||
jetty-p2 | ||
logos | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.lgtm.yml | ||
CODE_COVERAGE.md | ||
CONTRIBUTING.md | ||
Jenkinsfile | ||
Jenkinsfile-autobahn | ||
Jmh_Jenkinsfile | ||
KEYS.txt | ||
LICENSE | ||
NOTICE.txt | ||
README.md | ||
SECURITY.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.
Webapp Example
$ mkdir base && cd base
$ java -jar $JETTY_HOME/start.jar --add-modules=http,deploy
$ cp ~/src/myproj/target/mywebapp.war webapps
$ 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
To build, use:
mvn clean install
Eclipse Jetty will be built in jetty-home/target/jetty-home
.
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.