All Versions
32
Latest Version
Avg Release Cycle
38 days
Latest Release
1465 days ago

Changelog History
Page 1

  • v11.0.0 Changes

    December 07, 2020

    Eclipse Jetty 11.x Highlights

    • Jetty 11.x has a minimum Java requirement of Java 11.
    • Jetty 11.x modules are proper JPMS modules with module-info.class.
    • ๐Ÿ‘ Jetty 11.x supports the following technology specs (from the Jakarta EE 9 effort):
      • jakarta.servlet - 5.0.0
      • jakarta.servlet.jsp - 3.0.0
      • jakarta.servlet.jsp.jstl - 2.0.0
      • jakarta.el - 4.0.0
      • jakarta.websocket - 2.0.0
    • ๐Ÿ‘ Jetty 11.x is the first major version of Jetty to support the jakarta.servlet namespace.
      ๐Ÿ‘‰ Use Jetty 10.x for the older (now outdated) javax.servlet namespace.

    Important Changes

    • ๐ŸŒฒ Classic jetty logging facade has been replaced with slf4j-api usage
    • There is no longer a jetty-distribution, use jetty-home with a proper ${jetty.base} instead.
      ๐Ÿ“š See: Operations Guide: Architecture
      • New demo jetty-start module exists to replace the old demo-base functionality.
    • โœ‚ Remove jetty-all uber artifact
    • ๐Ÿ”ง Managing Configuration within a WebAppContext has a new API.
      (They are now self ordering and do not require knowledge of Jetty internals to use successfully)
    • ๐Ÿ”จ Complete WebSocket refactoring, those using the Jetty APIs or embedded-jetty will need to update their code.
      • Support for WebSocket over HTTP/2 (client and server)
    • Jetty HttpClient has been improved.
      • Supports dynamic protocol upgrade (http/2 and http/1.1).
    • ๐Ÿ”จ Session management has been refactored as well.

    ๐Ÿ”„ Changelog

    • โฌ†๏ธ #5715 - Fix problems caused by upgrade to jstl version.
    • #5701 - Bump jakarta.servlet.jsp-api from 3.0.0-M1 to 3.0.0
    • #5700 - Bump jakarta.servlet.jsp.jstl-api from 2.0.0-RC1 to 2.0.0
    • ๐Ÿ”Œ #5626 - Bump maven-resources-plugin from 3.1.0 to 3.2.0
    • ๐Ÿ”Œ #5608 - Bump maven-project-info-reports-plugin from 3.0.0 to 3.1.1
    • #5585 - Bump jakarta.annotation-api from 2.0.0-RC1 to 2.0.0
    • ๐Ÿ”Œ #5550 - Bump maven-source-plugin from 3.0.1 to 3.2.1
    • #5549 - Bump hazelcast.version from 4.0.1 to 4.0.3
    • #5548 - Bump geronimo-interceptor_1.2_spec from 1.1 to 1.2
    • #5506 - Bump weld-servlet-core from 4.0.0.Beta1 to 4.0.0.Beta5
    • ๐Ÿ”Œ #5473 - Bump appassembler-maven-plugin from 2.0.0 to 2.1.0
    • #5472 - Bump jna from 5.5.0 to 5.6.0
    • #5470 - Bump mail-api.version from 2.0.0-RC4 to 2.0.0-RC6
    • #5423 - Bump jakarta.servlet-api from 5.0.0-M1 to 5.0.0
    • ๐Ÿ”Œ #5380 - Bump maven-war-plugin from 3.2.3 to 3.3.1
    • #4568 - Use jakarta.* namespace for new Jakarta EE 9 "Big Bang" artifacts
  • v11.0.0.beta3 Changes

    October 22, 2020

    ๐Ÿ”„ Changes

    • #5022 : Cleanup ServletHandler, specifically with respect to making filter chains more extensible
    • #5287 : CompressionPools should use the new jetty-util Pool class
    • #5360 : demo-spec module incorrectly depends on demo-jndi
    • #5368 : WebSocket text event execute in same thread as running binary event and destroy Threadlocal
    • #5378 : Filter/Servlet/Listener Holders are not started if added during STARTING state.
    • ๐Ÿ‘ #5379 : Better handling for wrong SNI
    • #5394 : Quickstart does not inject/decorate objects
    • ๐Ÿšš #5401 : Move jetty-http-tools under the project root
    • #5409 : HttpClient fails intermittently with "Invalid response state TRANSIENT"
    • ๐Ÿ”ง #5417 : Badly configured HttpConfiguration.securePort can lead to wrong port produced by ForwardedRequestCustomizer
    • #5443 : Request without Host header fails with NullPointerException in ForwardedRequestCustomizer
    • #5448 : Request.isSecure() returns false for https schemes in Jetty 10+
    • #5451 : Improve Working Directory creation
    • #5454 : Request error context is not reset
    • โšก๏ธ #5475 : Update to spifly 1.3.2 and asm 9
    • #5480 : NPE from WebInfConfiguration.deconfigure during WebAppContext shutdown
  • v11.0.0.beta2 Changes

    October 02, 2020

    Important Changes

    • ๐ŸŒฒ #4572 : Replace jetty logging facade with slf4j-api usage
    • ๐Ÿšš #5317 : Remove jetty-all
    • ๐Ÿšš #5174 : Remove jetty-distribution in favor of jetty-home
    • #5264 : Create new demo jetty-start module (to replace the old demo-base functionality)

    ๐Ÿ›  Issues Fixed

    • #1337 : MultiPart Part.write(String fileName) - Write method used unexpected path
    • ๐Ÿ”ง #1761 : Make GzipHandler module more configurable
    • #2609 : Make finding orphaned expired sessions common across SessionDataStores
    • #2796 : HTTP/2 max local stream count exceeded when request fails
    • #3766 : Introduce HTTP/2 API to batch frames
    • #3916 : multipart/byterange output is invalid to RFC7233
    • #4430 : Duplicate generation of servlets/filters/listeners from context xml with quickstart
    • โšก๏ธ #4736 : Update Import-Package version start ranges
    • #4808 : Review HttpClient Request header APIs
    • #4809 : Set a max number of requests per connection
    • #4824 : WebSocket server outgoing message queue memory growth
    • #4888 : Request getSession() method throws IllegalStateException when Session exists
    • #4919 : websocket container stop ordering
    • #4954 : Simplify ability to get Byte Counts about requests
    • #4985 : Fix NPE related to use of Attributes.Wrapper getAttributeNameSet()
    • #4988 : The check for whether a mime type is gzipable modifies (lower-cases) the content type
    • โš  #4996 : Warning log printed when debug is enabled in AbstractLifecycle.java
    • ๐ŸŒ #5013 : Bundle-ClassPath and lib place on WEB-INF/lib make classpath duplicate
    • โฌ†๏ธ #5018 : WebSocketClient connect / upgrade timeout not configurable
    • #5019 : Automatically hot-reload SSL certificates if keystore file changed
    • #5020 : LifeCycle.Listener not called for Filter/Servlet/Listener lifecycle events
    • #5025 : dispatcher.include() with welcome files lead to stack overflow error
    • #5029 : Open redirect when sending custom Host header to URL with no trailing forward-slash
    • #5032 : Introduce Listeners to aid in tracking timings within ServletContext and WebApp
    • #5043 : WebSocketListener anonymous classes should be invocable
    • โฌ†๏ธ #5044 : Jetty WebSocket UpgradeRequest & UpgradeResponse types in Jetty 10
    • #5053 : CWE-331 in DigestAuthentication class
    • #5057 : javax.servlet.include.context_path attribute on root context. should be empty string, but is "/"
    • #5064 : NotSerializableException for OpenIdConfiguration
    • #5079 : :authority header for IPv6 address not having square brackets
    • ๐Ÿ”€ #5083 : Convert synchronized usages to AutoLock
    • โฌ†๏ธ #5096 : using JettyWebSocketServlet without having a WebSocketUpgradeFilter
    • #5103 : Proxy sets protocol version to 2.0 instead of 1.1 when accessed from H2 client
    • #5104 : AbstractProxyServlet include incorrect protocol version in Via header when accessed over H2
    • #5105 : Graceful shutdown does not wait for resumed requests
    • #5108 : Improve SessionTracker scalability
    • #5122 : Retrieving websocket connections via jmx
    • #5129 : No jars added when using a folder in extraClasspath of the webapp context xml file
    • #5133 : Improve ResourceFactory and Resource list handling
    • #5147 : Set MaxUsageCount with existing connection pool changing the behavior
    • โฑ #5150 : Zero connection timeout is not supported in HTTP client with non-blocking connect
    • #5152 : HttpClient should handle unsolicited responses
    • #5162 : DecoratingListener raises a NullPointerException
    • #5165 : Wrong messagesIn count for HttpClient
    • โฌ†๏ธ #5170 : NullPointerException in HttpReceiverOverHTTP during WebSocket client Upgrade
    • ๐Ÿ”ง #5171 : GzipHandler Vary head should be configurable
    • โšก๏ธ #5178 : Update to asm 8.0.1
    • #5185 : Introduce DoSFilter Listener for Alert messages
    • #5193 : WebSocket unimplemented BINARY message handling can result in TEXT message delivery to fail
    • โšก๏ธ #5198 : Update GzipHandler
    • #5201 : QueuedThreadPool setDetailedDump gives less detail
    • #5204 : SNI does not work with PKIX
    • ๐Ÿ‘ #5214 : Servlet HEAD doesn't support content-length over Integer.MAX_VALUE
    • #5217 : Review RoundRobinConnectionPool
    • #5224 : HttpServletRequest.getServerName can include port when using ForwardedRequestCustomizer
    • ๐Ÿ‘ #5233 : Bad/Unsupported HTTP version should return 505 not 400
    • #5246 : GzipHandler's DeflaterPool should be dumpable
    • #5247 : Improve ForwardRequestCustomizer authority priority
    • #5254 : Short list of Jetty modules
    • #5256 : Cleanup Jetty 10 Start
    • โš  #5263 : Introduce jetty-home contamination warning
    • #5268 : WARN Ignoring eviction setting: 0
    • ๐Ÿšš #5280 : Remove unused methods on SessionHandler
    • ๐Ÿ‘ #5285 : Per RFC7694, if a Content-Encoding isn't recognized, reject with 415 Unsupported Media Type
    • #5304 : HTTP/2 with HttpServletRequest.getHeader("Host") returns null on Jetty 10, but a valid value on Jetty 9
    • #5316 : Review element in Jetty XML
    • ๐Ÿ‘ #5324 : Jetty XML should support nested elements
    • โœ… #5327 : NPE from jetty test webapp
    • โšก๏ธ #5357 : Update http://eclipse.org to https://eclipse.org in source
    • #5360 : demo-spec module incorrectly depends on demo-jndi
    • 0๏ธโƒฃ #5362 : Default ProxyServlet cannot proxy to https urls
    • #5365 : org.eclipse.jetty.server.Request throws NullPointerException if SessionHandler newHttpSession returns null
  • v11.0.0.beta1

    July 10, 2020
  • v11.0.0-alpha0

    May 30, 2020
  • v10.0.0 Changes

    December 07, 2020

    Eclipse Jetty 10.x Highlights

    • Jetty 10.x has a minimum Java requirement of Java 11.
    • Jetty 10.x modules are proper JPMS modules with module-info.class.
    • ๐Ÿ‘ Jetty 10.x supports the following technology specs (from the Jakarta EE 8 effort):
      • javax.servlet - 4.0.1
      • javax.servlet.jsp - 2.2
      • javax.servlet.jsp.jstl - 1.2
      • javax.el - 3.0.0
      • javax.websocket - 1.1
    • ๐Ÿ‘ Jetty 10.x will be the last major version of Jetty to support the javax.servlet namespace.
      โšก๏ธ Use Jetty 11.x for the updated jakarta.servlet namespace.

    Important Changes

    • ๐ŸŒฒ Classic jetty logging facade has been replaced with slf4j-api usage
    • There is no longer a jetty-distribution, use jetty-home with a proper ${jetty.base} instead.
      ๐Ÿ“š See: Operations Guide: Architecture
      • New demo jetty-start module exists to replace the old demo-base functionality.
    • โœ‚ Remove jetty-all uber artifact
    • ๐Ÿ”ง Managing Configuration within a WebAppContext has a new API.
      (They are now self ordering and do not require knowledge of Jetty internals to use successfully)
    • ๐Ÿ”จ Complete WebSocket refactoring, those using the Jetty APIs or embedded-jetty will need to update their code.
      • Support for WebSocket over HTTP/2 (client and server)
    • Jetty HttpClient has been improved.
      • Supports dynamic protocol upgrade (http/2 and http/1.1).
    • ๐Ÿ”จ Session management has been refactored as well.

    ๐Ÿ”„ Changelog

    ๐Ÿš€ Special thanks to the following Eclipse Jetty community members for participating in this release: @dejpec, @attiand, @sullis, @grgrzybek, @schnittstabil, @dennyac

    • #5744 - Review and rework o.e.j.util.Scanner
    • #5732 - Fix ArithmeticException "/ by zero" in Pool.acquire()
    • โœ… #5729 - Do not create and use jars with "tests" classifier.
    • #5724 - GCThreadLeakPreventer won't work with Java 9.
    • ๐Ÿšš #5710 - remove unnecessary transition to READY in ContentProducer.isReady
    • ๐Ÿšš #5705 - Move websocket-util classes into websocket-core
    • #5698 - Bump commons-codec from 1.13 to 1.15
    • #5695 - Bump api-ldap-schema-data from 2.0.0 to 2.0.1
    • #5694 - Bump commons-lang3 from 3.9 to 3.11
    • #5692 - HttpInput may skip setting fill interest
    • #5683 - Allow start.jar to list enabled modules
    • #5674 - Drop /jetty-spring/ module
    • โฌ†๏ธ #5648 - Use Filter name to identify the WebSocketUpgradeFilter.
    • #5641 - Clean up LoginServices and LoginModules
    • #5622 - Bump javax.servlet.jsp.jstl from 1.2.2 to 1.2.5
    • ๐Ÿ”Œ #5615 - Bump maven-project-info-reports-plugin from 3.0.0 to 3.1.1
    • #5597 - Cleanups to WebSocket CloseStatus
    • #5594 - Bump tycho-version from 2.0.0 to 2.1.0
    • #5592 - Bump hazelcast.version from 4.0.1 to 4.1
    • #5566 - Tries cleanup
    • #5563 - using jetty-websocket-httpclient.xml within webapp Jetty 10
    • #5547 - Bump org.eclipse.osgi from 3.6.0.v20100517 to 3.7.1
    • ๐Ÿš€ #5543 - Bump spring-beans from 5.2.9.RELEASE to 5.3.0
    • #5527 - ResourceCollection NPE
    • #5526 - Access to cookie config with accessor method (@dejpec)
    • #5517 - Fix and simplify graceful shutdown of StatisticsHandler
    • ๐Ÿš€ #5503 - Bump spring-beans from 5.1.1.RELEASE to 5.2.9.RELEASE
    • #5469 - Bump jaxws-rt from 2.3.0.2 to 2.3.3
    • #5468 - Bump openpojo from 0.8.1 to 0.8.13
    • ๐Ÿ”Œ #5467 - Bump maven-jxr-plugin from 2.5 to 3.0.0
    • #5466 - Bump jakarta.annotation-api from 1.3.4 to 1.3.5
    • #5465 - Bump github-api from 1.114 to 1.116
    • ๐Ÿ›  #5459 - Fix archive assemblies (tar.gz and zip) to have fixed file/dir modes.
    • #5450 - Cleanup Request.isSecure() logic
    • #5432 - Bump ant.version from 1.10.8 to 1.10.9
    • #5422 - Bump asciidoctorj-diagram from 2.0.2 to 2.0.5
    • โฌ†๏ธ #5413 - simplify the usage of WebSocketUpgradeFilter in jetty 10
    • ๐Ÿ”ง #5406 - throw ISE if the WebSocketSCI configure() is called on a started ServletContextHandler
    • โฌ†๏ธ #5405 - add test to reproduce issue with WebSocketUpgradeFilter not started
    • ๐ŸŒ #5400 - Add more origin info to quickstart-web.xml elements
    • ๐Ÿ‘ #5398 - Better handling for wrong SNI.
    • #5396 - Fix injection for quickstart
    • #5391 - Bump javax.servlet-api from 3.1.0 to 4.0.1
    • #5390 - Bump maven-artifact-transfer from 0.11.0 to 0.12.0
    • #5367 - Reorg of /demos/ with focus on demo-spec downstream dependencies.
    • #5350 - Bump jsp-api from 2.1 to 2.2
    • #5349 - Bump asm.version from 8.0.1 to 9.0
    • ๐Ÿ”Œ #5347 - Bump maven-jar-plugin from 3.1.2 to 3.2.0
    • #5333 - Bump derby from 10.14.2.0 to 10.15.2.0
    • #5328 - NPE in PushBuilder
    • #5311 - Quickstart duplicate servlets,filters,listeners from context
    • โš  #5309 - Jetty Home warning
    • #5307 - HTTP2 HostHeader
    • ๐Ÿšš #5303 - Remove unused SessionHandler methods.
    • #5302 - Bump mariadb-java-client from 2.6.0 to 2.6.2
    • #5295 - rework CompressionPool to use the jetty-util pool
    • #5288 - fix get sessionId from fileName
    • โฌ†๏ธ #5266 - fix upgrade bug in HttpReceiverOverHTTP
    • ๐Ÿ›  #5265 - JDK-8244090 MethodHandles bug fixed in JDK16
    • ๐Ÿ”Œ #5262 - Bump exec-maven-plugin from 1.6.0 to 3.0.0
    • ๐Ÿ”Œ #5260 - Bump flatten-maven-plugin from 1.0.1 to 1.2.5
    • #5258 - Adding start.jar --add-module
    • #5257 - List/Show modules
    • โšก๏ธ #5248 - update gzip handler
    • #5243 - Add gracePeriod to file session store.
    • #5239 - Bump tycho-version from 1.4.0 to 2.0.0
    • #5238 - Bump jmh.version from 1.25.1 to 1.25.2
    • #5237 - Bump org.eclipse.osgi from 3.15.100 to 3.15.300
    • #5236 - Bump org.eclipse.osgi.services from 3.7.100 to 3.8.0
    • ๐Ÿš€ #5235 - Jetty WebSocket API minor cleanups before Jetty-10 full release
    • โฌ†๏ธ #5213 - fix NPE during websocket upgrade
    • #5211 - Bump jmh.version from 1.21 to 1.25.1
    • #5196 - Simplify GzipHandler user-agent handling
    • #5192 - Bump apacheds.version from 2.0.0-M24 to 2.0.0.AM26
    • #5191 - Bump jaxb-api from 2.3.0 to 2.3.1
    • #5190 - Bump jnr-unixsocket from 0.24 to 0.34
    • #5188 - Bump derbytools from 10.14.2.0 to 10.15.2.0
    • โšก๏ธ #5182 - Update to spifly 1.3.0
    • โšก๏ธ #5179 - Update to asm8.0.1
    • ๐ŸŒฒ #5167 - Regularlize logging
    • #5157 - Bump ant from 1.8.4 to 1.10.8
    • โšก๏ธ #5154 - Fix WebSocketServerExamplesTest to work after maven surefire update
    • #5119 - Use either absolute or relative multipart file location
    • #5115 - lazily initialize the WebSocketFilter if only using JettyWebSocketServlet
    • ๐Ÿ”จ #5101 - Refactor of Jetty WebSocket Upgrade Request/Response
    • #5098 - Static UrlEncoded
    • #5097 - Uniform Find Expired Sessions
    • ๐Ÿ”€ #5084 - Convert synchronized usages to AutoLock.
    • #5077 - enable Dependabot v2 (@sullis)
    • โช #5075 - restore old ServletPathMapping even for include dispatch types
    • #5054 - allow anonymous WebSocketListener / Endpoint classes to be used
    • #5046 - fix NPE related to use of Attributes.Wrapper getAttributeNameSet() Jetty 10
    • โฌ†๏ธ #5031 - add WebSocketClient UpgradeRequest timeout to jetty 10
    • #5026 - wrong welcome file handling with dispatcher.include() aโ€ฆ (@grgrzybek)
    • ๐ŸŒฒ #4997 - Implementing old logging TAG_PAD as Message Alignment.
    • #4994 - Implemented TAG_PAD
    • #4978 - only include jetty-slf4j-impl jar once in jetty-home
    • ๐Ÿ— #4952 - fix websocket JPMS warnings and build issues
    • #4931 - WebSocket container graceful stop
    • ๐Ÿ‘ #4917 - Give better errors for non public javax.websocket endpoints
    • #4912 - close websocket suspendState if close frame is received
    • ๐Ÿ‘ #4902 - support javax websocket decoder lists in jetty-10
    • ๐Ÿ”จ #4898 - Refactor HttpServletMapping to avoid tracking servletPath separately
    • #4881 - Separate out websocket client and server components from websocket-core
    • #4858 - add setReuseAddress() to ClientConnector
    • #4851 - fix issues with HttpServletMapping
    • #4845 - Review HttpClient Request header APIs.
    • #4839 - Enabling JMX on jetty-slf4j-impl
    • #4829 - Implement spec requirements for Request.newPushBuilder
    • #4815 - Allow a ConnectionFactory (eg SslConnectionFactory) to automatically add a Customizer
    • #4810 - fix WebSocket LinkageError and invalid PathParam type handling
    • โœ… #4804 - Test for asyncIsStarted for setReadListener
    • #4796 - HttpInput.setReadListener should check async state
    • โฌ†๏ธ #4780 - upgrade spifly to 1.2.4 and replace jdk13 build with jdk14
    • ๐Ÿ“‡ #4777 - Immutable HttpFields and MetaData
    • โœ… #4775 - cleanup and add tests for the unused ws message handlers
    • #4767 - Review GzipHandler inside ServletContextHandler.
    • #4763 - Request.authenticate must return true if already authenticated
    • #4761 - Response.setLocale should override previous
    • ๐Ÿ‘ป #4759 - Improve keystore exception message when keystore is not valid (@schnittstabil)
    • #4757 - Use HandlerList instead of HandlerCollection
    • #4753 - Call HttpSessionListener.sessionCreated in order listeners were added.
    • โœ… #4750 - fix some test failures for jetty-10 with websocket tck
    • ๐Ÿ”€ #4730 - no merge query string
    • ๐Ÿšš #4723 - remove websocket-servlet
    • #4721 - Async dispatch with query.
    • #4720 - Keep previous charencoding if not set in content type
    • #4708 - wrong value for ServletContext.setSessionTimeout
    • โฌ†๏ธ #4702 - avoid NPE during websocket HTTP/2 upgrade
    • ๐Ÿ‘ #4701 - ServletContext.createXXX methods should throw UnsupportedOperationException
    • ๐Ÿ‘ #4698 - ServletContext sessionModes methods should throw UnsupportedOperationException
    • #4694 - use static methods with javadoc to get MethodHandle lookups
    • #4692 - Use MethodHandles.lookup() consistently in WebSocket code.
    • ๐Ÿ–จ #4689 - support alt PrintStream in StdErrAppender properly
    • #4684 - Fix jetty-slf4j-impl for osgi
    • ๐Ÿ”จ #4672 - Refactor CrossOriginFilter with small perf improvements (@dennyac)
    • โฌ†๏ธ #4670 - Support HTTP/1 upgrade to HTTP/2 in HttpClient.
    • ๐Ÿ›  #4669 - websocket JPMS fixes to not export websocket-core
    • โฌ†๏ธ #4666 - upgrade openwebbeans-web to 2.0.15
    • #4661 - generalise XmlConfiguration elements
    • ๐Ÿ”ง #4649 - Hazelcast remote.xml configuration file do not configure hazelcast remote addresses (@attiand)
    • #4627 - request getPathInfo() could be null in InetAccessHandler
    • #4618 - Review HttpClient's ContentProvider.
    • #4615 - rework InetAccessHandler to use path mappings
    • #4602 - Continue after ServiceLoader ServiceConfigurationError
    • #4593 - websocket aggregating text and binary MessageSinks
    • #4590 - Implement forward/include/async params for HttpServletMapping
    • #4588 - rework of websocket message reader and writers
    • ๐Ÿ“‡ #4587 - Servlet 4 metadata-complete=true should skip introspection of annotations
    • ๐Ÿšš #4583 - remove unnecessary javadoc on Override methods
    • ๐Ÿ‘ #4570 - StdErrLog cleanup and final Arg Throwable support
    • ๐Ÿšš #4563 - remove deprecated jetty-runner
    • ๐ŸŽ #4561 - Improve performance of small websocket messages [jetty-10.0.x]
    • ๐Ÿšš #4558 - Remove Resource.writeTo(OutputStream, long, long)
    • ๐Ÿ”จ #4556 - HttpInput refactoring
    • #4554 - Graceful close of HTTP/2 Connection.
    • ๐Ÿ‘ #4552 - Fix MethodHandles lookup to support JPMS runtime mode
    • #4549 - clean up websocket removing duplicated and unused classes
    • ๐Ÿ”ง #4543 - Client configuration for direct/heap ByteBuffers.
    • ๐Ÿšš #4539 - remove all SharedBlockingCallback usage from websocket
    • #4536 - separate modules for jetty and javax websockets
    • #4535 - do not throw IOException on Javax websocket close
    • #4527 - Make the WebSocketServerContainer initialize methods private
    • #4523 - allow changing of close response from jetty and javax websocket onClose events
    • #4522 - fix JPMS issues with javax websockets
    • โœ… #4514 - tck tests are done after ServletContext has already been initialized so we need to test this first to get some tck test passing...
    • #4510 - spec addJspFile javadoc expect IllegalArgumentException if name is null or empty string
    • #4509 - Ensure get/setInitParam with null arg throws NPE
    • ๐Ÿ”€ #4498 - synchronize multiparts for cleanup from different thread
    • โšก๏ธ #4497 - Update paxexam for osgi tests
    • #4494 - Bundle-RequiredExecutionEnvironment: JavaSE-11 for Jettโ€ฆ
    • ๐Ÿšš #4490 - remove blank line
    • #4489 - Switch SslContextFactory.keystoreType from JKS to PKCS12.
    • #4488 - Bump Apache Jasper JSP from 9.0.19 to 9.0.29
    • ๐Ÿ”จ #4482 - Refactored Graceful shutdown
    • #4477 - Modernize jetty-util-ajax.
    • #4472 - Prevent jetty 10 WebSocket close deadlocks
    • #4470 - Provide a parameterless CustomRequestLog.
    • ๐Ÿšš #4469 - Move multipart classes to jetty-server.
    • โœ… #4467 - Add tests for default-context-path
    • #4463 - Implement ServletContext.addJspFile
    • #4458 - Implement get/setSessionTimeout for ServletContext
    • 0๏ธโƒฃ #4455 - Implement context default request/response encodings.
    • ๐Ÿ“‡ #4452 - fix issues with javax metadata and decoders
    • #4451 - websocket-core exposes internal classes
    • #4441 - WebSocket rename for jetty-10
    • #4436 - Fix JPMS transitivity.
    • #4435 - Fix WebSocket ClassLoader issues.
    • 0๏ธโƒฃ #4420 - use annotations for Javax WebSockets as default EndpointConfig
    • ๐Ÿ”ง #4390 - Pass system properties into xml configurations
    • โšก๏ธ #4384 - Update jsp documenation; remove old config from webdefault.xml
    • โฌ†๏ธ #4379 - Allow WebSocket extension selection to be done from UpgradeListener
    • ๐Ÿšš #4371 - remove MultiParts interface and simplify MultiPart cleanup
    • ๐Ÿ›ฐ #4359 - sending WebSocket frames modifies the payload ByteBuffer
    • โœ… #4355 - test client negotiation of internal extensions
    • #4343 - fix creation of HttpClient in jetty-openid.xml for jetty10
    • #4324 - stop WebSocketSessions only after onClose
    • #4295 - config for jetty specific settings with javax WebSockets
    • #4260 - CompressExtension autoFragment with respect to maxFrameSize
    • #4232 - fragment outgoing frames before the ExtensionStack
    • ๐Ÿšš #4229 - remove default keystore passwords not from test-keystore.mod
    • #4224 - Fix reported Servlet major/minor versions
    • ๐Ÿ“œ #4219 - make WS Parser autoFragment data frames to maxFrameSize
    • โœ… #4215 - fix flaky ClientConnectTest and change WS connectTimeout
    • #4151 - Module org.eclipse.jetty.alpn.client not found, requireโ€ฆ
    • โœ… #4147 - autobahn tests for jetty, javax websocket APIs
    • ๐Ÿ”ง #4097 - Configuration cleanup
    • #4095 - throw ISE for WebSocket suspend after close
    • โฌ†๏ธ #4090 - revert ClientUpgradeRequest error handling logic
    • #4078 - Fix restart of quickstarted webapp
    • #4068 - Review Locker.
    • #4035 - Fix Secure javax.websocket Client examples
    • ๐Ÿ”€ #4021 - Removing @deprecated methods / classes from jetty-9.4.x merge
    • #4017 - Consider adding demand API to HTTP/2.
    • #4008 - Fix quickstart
    • #3966 - Use addEventListener(EventListener listener) instead of bespoke listener methods
    • ๐Ÿ”ง #3959 - Server configuration for direct/heap ByteBuffers.
    • #3920 - Draft 1 for week 1.
    • #3873 - Javax Websocket Packaging
    • #3853 - only notify onError for local errors
    • #3848 - copy dependency for jetty-javax-websocket-api
    • ๐Ÿ’… #3847 - Checkstyle cleanup
    • #3844 - Deflater / Inflater Object Pool (Jetty-10)
    • #3819 - ensure abnormal close frame will hard close ws connection
    • #3816 - do not copy RSV bits to auto-fragmented frames
    • ๐Ÿ”จ #3802 - WebSocket core - autobahn and MessageHandler refactor
    • ๐Ÿšš #3797 - Remove deprecated in Jetty 10.0.x
    • #3792 - store autobahn results as they are not stored automatically by junitPublisher
    • #3790 - XmlConfiguration Set Property
    • #3783 - jetty-10.0.x WebSocket core cleanup
    • #3779 - review of exposed classes in jetty-websocket-server
    • โœ… #3770 - use the default port of 0 for WebSocket tests
    • #3740 - Bootstrap websocket on HTTP/2
    • #3732 - rename maxIdleTime usage to idleTimeout for WebSockets
    • #3720 - clean up modules
    • #3703 - Cleanup webappconfiguration
    • ๐Ÿ›  #3702 - Some fixes for running cometd6 on jetty-10
    • #3686 - error CloseFrames skip frames in the FrameFlusher queue
    • ๐Ÿ”จ #3660 - jetty-10 WebSocket configuration refactor
    • #3644 - Use jetty specific websocket API jar.
    • #3539 - Implement HTTP CONNECT for HTTP/2.
    • โœ… #3521 - flaky tests in jetty-websocket-tests ClientCloseTest
    • #3504 - implement Session.suspend() for jetty-10 jetty-websocket-api
    • #3478 - WebSocket Extension Negotiation
    • โฌ†๏ธ #3470 - websocket upgrade request valdiation
    • โฌ†๏ธ #3460 - jetty websocket upgrades without using websocket-servlet classes
    • ๐Ÿ—„ #3455 - Removing deprecated Extension classes in jetty-websocket-api
    • โฌ†๏ธ #3448 - upgrade jetty-websockets with WebSocketUpgradeFilter
    • โช #3439 - restore jetty websocket tests
    • ๐Ÿ”จ #3435 - refactored HttpCompliance
    • โšก๏ธ #3432 - WebSocketChannel bug fixes, cleanup and javadoc updates for FrameHandler
    • #3430 - jetty.webapps.uri should be the parent of the webapp
    • ๐Ÿ—„ #3416 - Removing Deprecated Resource.getURL()
    • โฌ†๏ธ #3414 - add support for WebSocket UpgradeListeners in WebSocketClient
    • #3413 - WebSocket CoreSession Customizer
    • โœ… #3407 - websocket core test cleanup
    • โœ… #3403 - parameterized WebSocketCloseTest over TLS
    • #3401 - permessage-deflate continuation frame with RSV1 set
    • ๐Ÿ—„ #3398 - Removing deprecated methods and classes
    • #3390 - implement WebSocketConnection stats
    • #3384 - use add-exports instead of add-opens in javax WS-Server pom
    • #3383 - Add tracking of WebSocket Sessions to various WebSocket Container APIs
    • ๐Ÿ”ง #3381 - Adding configured Connection.Listeners to WebSocket Connections
    • โœ… #3366 - javax-websocket-server tests
    • #3365 - WebSocket Proxy
    • โšก๏ธ #3360 - Update PushCacheFilter to use Servlet 4.0 APIs.
    • #3357 - WebSocket HttpClientProvider
    • #3352 - Restructure jetty-unixsocket module.
    • #3342 - Review Jetty 10 module-info.java.
    • #3338 - Jetty 10 standalone cannot start on the module-path.
    • #3336 - Generalize EndPoint.onClose(Throwable) for WebSocket cases
    • ๐Ÿ›  #3335 - FrameFlusher and WebSocket close fixes
    • #3331 - sendError does not set reason.
    • #3313 - Dynamic selection of the transport to use based on ALPN on the client side.
    • โฌ†๏ธ #3310 - WebSocket UpgradeRequests and CompletableFutures
    • ๐Ÿšš #3309 - Remove deprecated session methods
    • โšก๏ธ #3299 - Update to apache jsp 9.0.14
    • โœ… #3294 - fix websocket new groupId in osgi tests
    • โœ… #3292 - Add autobahn profile to automatically run autobahn test suite in Jenkins
    • #3291 - async websocket onOpen, onError and onClose
    • #3289 - Correcting Jetty WebSocket API artifactIds
    • ๐Ÿ”จ #3286 - WebSocketMapping Refactor
    • #3267 - ClientConnector abstraction.
    • #3262 - Improve WebSocket close handling
    • โœ… #3259 - javax-websocket-tests exception stacktraces
    • ๐Ÿšš #3255 - Remove FastCGI multiplexing.
    • โœ… #3237 - custom request log test failure
    • #3224 - Autobahn WebSocketServer failures in jetty 10
    • ๐Ÿ”จ #3222 - Refactor WebSocket mapping
    • โœ… #3215 - Ensure MetaInfConfigurationTest is not disabled
    • #3211 - Lazy creation of WebSocketCoreClient
    • โฌ†๏ธ #3209 - upgrade logback and log4j-slf4j (new artifact log4j-slf4j18-impl) to support slf4j api 1.8
    • #3199 - NPE in WebSocketContainerInitializer for jetty10
    • #3198 - rename websocket directories, modules and artifacts
    • #3177 - fix argLine inheritance
    • โœ… #3172 - Adding both WebSocket tests to /test-integration/ to verify behavior that is causing problems from within OSGi.
    • ๐Ÿ”จ #3169 - websocket module refactor
    • #3168 - Use Jetty specific Servlet API jar.
    • 0๏ธโƒฃ #3160 - CustomRequestLog as default in jetty-10
    • โœ… #3120 - Adding module-info.java to non-tests Jetty modules
    • 0๏ธโƒฃ #3063 - Preserve default-context-path for quickstart
    • #3055 - Break out WebSocket core features into new websocket-core components
    • ๐Ÿšš #3035 - Move jmh test 3014
    • ๐Ÿ”จ #3029 - Http/Cookie/MultiPartFormData Compliance Refactor
    • #3017 - Moving HttpCompliance to HttpConfiguration
    • ๐Ÿšš #3016 - Move old MultiPart to jetty-http
    • 0๏ธโƒฃ #3015 - Defaulting to non-LEGACY compliance modes
    • ๐Ÿ”ง #2987 - Configuration replacement algorithm
    • #2984 - JmxConfiguration JPMS ready
    • ๐Ÿ— #2973 - Build minimum requirement is now JDK 11
    • #2905 - fix groovy variable scope
    • ๐Ÿšš #2384 - remove checkGzExists from GzipHandler entirely
    • ๐Ÿ‘ #2105 - cleanup MultiException to better use suppressed
    • #2104 - open connectors before starting
  • v10.0.0.beta3 Changes

    October 22, 2020

    ๐Ÿ”„ Changes

    • #5022 : Cleanup ServletHandler, specifically with respect to making filter chains more extensible
    • #5287 : CompressionPools should use the new jetty-util Pool class
    • #5360 : demo-spec module incorrectly depends on demo-jndi
    • #5368 : WebSocket text event execute in same thread as running binary event and destroy Threadlocal
    • #5378 : Filter/Servlet/Listener Holders are not started if added during STARTING state.
    • ๐Ÿ‘ #5379 : Better handling for wrong SNI
    • #5394 : Quickstart does not inject/decorate objects
    • ๐Ÿšš #5401 : Move jetty-http-tools under the project root
    • #5409 : HttpClient fails intermittently with "Invalid response state TRANSIENT"
    • ๐Ÿ”ง #5417 : Badly configured HttpConfiguration.securePort can lead to wrong port produced by ForwardedRequestCustomizer
    • #5443 : Request without Host header fails with NullPointerException in ForwardedRequestCustomizer
    • #5448 : Request.isSecure() returns false for https schemes in Jetty 10+
    • #5451 : Improve Working Directory creation
    • #5454 : Request error context is not reset
    • โšก๏ธ #5475 : Update to spifly 1.3.2 and asm 9
    • #5480 : NPE from WebInfConfiguration.deconfigure during WebAppContext shutdown
  • v10.0.0.beta2 Changes

    October 02, 2020

    Important Changes

    • ๐ŸŒฒ #4572 : Replace jetty logging facade with slf4j-api usage
    • ๐Ÿšš #5317 : Remove jetty-all
    • ๐Ÿšš #5174 : Remove jetty-distribution in favor of jetty-home
    • #5264 : Create new demo jetty-start module (to replace the old demo-base functionality)

    ๐Ÿ›  Issues Fixed

    • #1337 : MultiPart Part.write(String fileName) - Write method used unexpected path
    • ๐Ÿ”ง #1761 : Make GzipHandler module more configurable
    • #2609 : Make finding orphaned expired sessions common across SessionDataStores
    • #2796 : HTTP/2 max local stream count exceeded when request fails
    • #3766 : Introduce HTTP/2 API to batch frames
    • #3916 : multipart/byterange output is invalid to RFC7233
    • #4430 : Duplicate generation of servlets/filters/listeners from context xml with quickstart
    • โšก๏ธ #4736 : Update Import-Package version start ranges
    • #4808 : Review HttpClient Request header APIs
    • #4809 : Set a max number of requests per connection
    • #4824 : WebSocket server outgoing message queue memory growth
    • #4888 : Request getSession() method throws IllegalStateException when Session exists
    • #4919 : websocket container stop ordering
    • #4954 : Simplify ability to get Byte Counts about requests
    • #4985 : Fix NPE related to use of Attributes.Wrapper getAttributeNameSet()
    • #4988 : The check for whether a mime type is gzipable modifies (lower-cases) the content type
    • โš  #4996 : Warning log printed when debug is enabled in AbstractLifecycle.java
    • ๐ŸŒ #5013 : Bundle-ClassPath and lib place on WEB-INF/lib make classpath duplicate
    • โฌ†๏ธ #5018 : WebSocketClient connect / upgrade timeout not configurable
    • #5019 : Automatically hot-reload SSL certificates if keystore file changed
    • #5020 : LifeCycle.Listener not called for Filter/Servlet/Listener lifecycle events
    • #5025 : dispatcher.include() with welcome files lead to stack overflow error
    • #5029 : Open redirect when sending custom Host header to URL with no trailing forward-slash
    • #5032 : Introduce Listeners to aid in tracking timings within ServletContext and WebApp
    • #5043 : WebSocketListener anonymous classes should be invocable
    • โฌ†๏ธ #5044 : Jetty WebSocket UpgradeRequest & UpgradeResponse types in Jetty 10
    • #5053 : CWE-331 in DigestAuthentication class
    • #5057 : javax.servlet.include.context_path attribute on root context. should be empty string, but is "/"
    • #5064 : NotSerializableException for OpenIdConfiguration
    • โœ… #5069 : HttpClientTimeoutTests can occasionally fail due to unreachable network
    • #5079 : :authority header for IPv6 address not having square brackets
    • ๐Ÿ”€ #5083 : Convert synchronized usages to AutoLock
    • โฌ†๏ธ #5096 : using JettyWebSocketServlet without having a WebSocketUpgradeFilter
    • #5103 : Proxy sets protocol version to 2.0 instead of 1.1 when accessed from H2 client
    • #5104 : AbstractProxyServlet include incorrect protocol version in Via header when accessed over H2
    • #5105 : Graceful shutdown does not wait for resumed requests
    • #5108 : Improve SessionTracker scalability
    • #5122 : Retrieving websocket connections via jmx
    • #5129 : No jars added when using a folder in extraClasspath of the webapp context xml file
    • #5133 : Improve ResourceFactory and Resource list handling
    • โœ… #5137 : WebAppContext Tests need cleanup
    • #5147 : Set MaxUsageCount with existing connection pool changing the behavior
    • โฑ #5150 : Zero connection timeout is not supported in HTTP client with non-blocking connect
    • #5152 : HttpClient should handle unsolicited responses
    • #5162 : DecoratingListener raises a NullPointerException
    • #5165 : Wrong messagesIn count for HttpClient
    • โฌ†๏ธ #5170 : NullPointerException in HttpReceiverOverHTTP during WebSocket client Upgrade
    • ๐Ÿ”ง #5171 : GzipHandler Vary head should be configurable
    • โšก๏ธ #5178 : Update to asm 8.0.1
    • #5185 : Introduce DoSFilter Listener for Alert messages
    • #5193 : WebSocket unimplemented BINARY message handling can result in TEXT message delivery to fail
    • โšก๏ธ #5198 : Update GzipHandler
    • #5201 : QueuedThreadPool setDetailedDump gives less detail
    • #5204 : SNI does not work with PKIX
    • ๐Ÿ‘ #5214 : Servlet HEAD doesn't support content-length over Integer.MAX_VALUE
    • #5217 : Review RoundRobinConnectionPool
    • #5224 : HttpServletRequest.getServerName can include port when using ForwardedRequestCustomizer
    • ๐Ÿ‘ #5233 : Bad/Unsupported HTTP version should return 505 not 400
    • #5246 : GzipHandler's DeflaterPool should be dumpable
    • #5247 : Improve ForwardRequestCustomizer authority priority
    • #5254 : Short list of Jetty modules
    • #5256 : Cleanup Jetty 10 Start
    • โš  #5263 : Introduce jetty-home contamination warning
    • #5264 : Create demo module
    • #5268 : WARN Ignoring eviction setting: 0
    • ๐Ÿšš #5280 : Remove unused methods on SessionHandler
    • ๐Ÿ‘ #5285 : Per RFC7694, if a Content-Encoding isn't recognized, reject with 415 Unsupported Media Type
    • #5304 : HTTP/2 with HttpServletRequest.getHeader("Host") returns null on Jetty 10, but a valid value on Jetty 9
    • #5316 : Review element in Jetty XML
    • #5321 : javadoc:aggregate-jar broken in Jetty 10
    • ๐Ÿ‘ #5324 : Jetty XML should support nested elements
    • โœ… #5327 : NPE from jetty test webapp
    • โšก๏ธ #5357 : Update http://*.eclipse.org to https://eclipse.org in source
    • #5360 : demo-spec module incorrectly depends on demo-jndi
    • 0๏ธโƒฃ #5362 : Default ProxyServlet cannot proxy to https urls
    • #5365 : org.eclipse.jetty.server.Request throws NullPointerException if SessionHandler newHttpSession returns null
  • v10.0.0.beta1

    July 10, 2020
  • v10.0.0.beta0

    May 27, 2020