10.0.0
joakime
released this
07 Dec 16:14
·
3134 commits
to jetty-10.0.x
since this release
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.1javax.servlet.jsp
- 2.2javax.servlet.jsp.jstl
- 1.2javax.el
- 3.0.0javax.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 updatedjakarta.servlet
namespace.
Important Changes
- Classic jetty logging facade has been replaced with slf4j-api usage
- There is no longer a
jetty-distribution
, usejetty-home
with a proper${jetty.base}
instead.
See: Operations Guide: Architecture- New
demo
jetty-start module exists to replace the old demo-base functionality.
- New
- Remove jetty-all uber artifact
- Managing
Configuration
within aWebAppContext
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.
Special Thanks to the following Eclipse Jetty community members
- @dejpec (dejpec)
- @dennyac (Denny Abraham Cheriyan)
- @grgrzybek (Grzegorz Grzybek)
- @schnittstabil (Michael Mayer)
- @attiand (Mattias Andersson)
Changelog
- #5739 - jetty-distribution is not created when building 11.0.0.beta3
- #5732 - Fix ArithmeticException "/ by zero" in Pool.acquire()
- #5729 - Do not create and use jars with "tests" classifier.
- #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
- #5691 - HttpInput may skip setting fill interest
- #5679 - Distro argument --list-all-modules does not work
- #5674 - Drop /jetty-spring/ module
- #5648 - Use Filter name to identify the WebSocketUpgradeFilter.
- #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
- #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
- #5526 - Access to cookie config with accessor method (@dejpec)
- #5521 - ResourceCollection NPE in list()
- #5503 - Bump spring-beans from 5.1.1.RELEASE to 5.2.9.RELEASE
- #5493 - StatisticsHandler broken for async applications
- #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.
- #5448 - Request.isSecure() returns false for
https
schemes in Jetty 10 - #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
- #5394 - Quickstart does not inject/decorate objects
- #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
- #5379 - Better handling for wrong SNI
- #5378 - Filter/Servlet/Listener Holders are not started if added during STARTING state.
- #5367 - Reorg of /demos/ with focus on demo-spec downstream dependencies.
- #5360 - demo-spec module incorrectly depends on demo-jndi
- #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
- #5327 - NPE from jetty test webapp
- #5320 - Using WebSocketClient with jetty-websocket-httpclient.xml in a Jetty web application causes ClassCastException
- #5304 - HTTP/2 with HttpServletRequest.getHeader("Host") returns null on Jetty 10, but a valid value on Jetty 9
- #5302 - Bump mariadb-java-client from 2.6.0 to 2.6.2
- #5287 - CompressionPools should use the new jetty-util Pool class
- #5280 - Remove unused methods on SessionHandler
- #5272 - The UserStore and PropertyUserStore classes are hard to re-use for caching eg JDBC data
- #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
- #5256 - Cleanup Jetty 10 Start
- #5254 - Short list of Jetty modules
- #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
- #5211 - Bump jmh.version from 1.21 to 1.25.1
- #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
- #5181 - Update to spifly 1.3.0
- #5178 - Update to asm 8.0.1
- #5171 - GzipHandler Vary head should be configurable
- #5170 - NullPointerException in HttpReceiverOverHTTP during WebSocket client Upgrade
- #5157 - Bump ant from 1.8.4 to 1.10.8
- #5154 - Fix WebSocketServerExamplesTest to work after maven surefire update
- #5096 - using JettyWebSocketServlet without having a WebSocketUpgradeFilter
- #5093 - Review UrlEncoded locking
- #5086 - Review Scanner locking
- #5083 - Convert synchronized usages to AutoLock
- #5075 - restore old ServletPathMapping even for include dispatch types
- #5044 - Jetty WebSocket UpgradeRequest & UpgradeResponse types in Jetty 10
- #5043 - WebSocketListener anonymous classes should be invocable
- #5025 - dispatcher.include() with welcome files lead to stack overflow error (@grgrzybek)
- #5018 - WebSocketClient connect / upgrade timeout not configurable
- #4996 - Warning log printed when debug is enabled in AbstractLifecycle.java
- #4985 - Fix NPE related to use of Attributes.Wrapper getAttributeNameSet()
- #4978 - only include jetty-slf4j-impl jar once in jetty-home
- #4952 - fix websocket JPMS warnings and build issues
- #4919 - websocket container stop ordering
- #4907 - org.eclipse.jetty.websocket.tests.SuspendResumeTest#testSuspendAfterClose
- #4903 - Give better errors for non public Websocket Endpoints
- #4858 - add setReuseAddress() to ClientConnector
- #4830 - Add JMX to new Jetty 10 jetty-slf4j-impl
- #4825 - PushBuilder tck test failures
- #4815 - Allow a ConnectionFactory (eg SslConnectionFactory) to automatically add a Customizer
- #4808 - Review HttpClient Request header APIs
- #4800 - WebSocket DistributionTests failure on JDK14
- #4794 - HttpInput.setReadListener should throw IllegalStateException if async not started
- #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
- #4765 - Review GzipHandler inside ServletContextHandler
- #4762 - Request.authenticate(Response) should return true if already authenticated
- #4760 - Response.setLocale should override previous Response.setLocale
- #4759 - Improve keystore exception message when keystore is not valid (@schnittstabil)
- #4757 - Use HandlerList instead of HandlerCollection
- #4752 - HttpSessionListener.sessionCreated should be called in order listener was added; sessionDestroyed in reverse order
- #4747 - Investigate websocket tck failures for jetty-10
- #4741 - getHttpServletMapping for async dispatch
- #4722 - Jetty-10 websocket-servlet exposes websocket-core classes
- #4719 - ContentType with no char encoding should use previous char encoding
- #4713 - AsyncContext.dispatch does not remember the query string of the request
- #4707 - Value for ServletContext.setSessionTimeout is wrong in StandardDescriptorProcessor
- #4700 - ServletContext.createXXX() methods should throw UnsupportedOperationException
- #4697 - Default and EffectiveSessionTrackingModes should throw UnsupportedOperationException
- #4691 - Use MethodHandles.lookup() consistently in WebSocket code
- #4683 - jetty-slf4j-impl has incorrect manifest
- #4672 - Refactor CrossOriginFilter with small perf improvements (@dennyac)
- #4669 - websocket JPMS fixes to not export websocket-core
- #4666 - upgrade openwebbeans-web to 2.0.15
- #4656 - XmlConfiguration cleanup
- #4647 - Hazelcast remote.xml configuration file do not configure hazelcast remote addresses (@attiand)
- #4620 - Using console-capture with StdErrLog results in empty log file
- #4610 - Docs for OpenID
- #4603 - Investigate WebSocketOverHTTP2Test.testServerConnectionClose()
- #4598 - Add URI mapping to InetAccessHandler
- #4581 - Remove javadoc for overridden methods
- #4577 - request getPathInfo returns null
- #4572 - Replace Jetty Logging
- #4567 - Jetty logging supporting Throwable as last argument
- #4563 - remove deprecated jetty-runner
- #4556 - HttpInput refactoring
- #4552 - Fix MethodHandles lookup to support JPMS runtime mode
- #4548 - duplicated classes between jetty and javax websocket implementations
- #4538 - review WebSocket MessageWriter and MessageReader
- #4527 - Make the WebSocketServerContainer initialize methods private
- #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
- #4507 - Servlet 4 instrument javax.servlet.xxx.mapping request attributes for forward,include and async
- #4506 - Servlet 4 metadata-complete=true should skip introspection of annotations
- #4505 - Servlet 4 get/setInitParameter() and get/setAttribute() must throw NPE if arg is null
- #4502 - respond to close frame with custom close code in jetty-10 websocket
- #4501 - Review the need for SharedBlockingCallback in jetty-10
- #4497 - Update paxexam for osgi tests
- #4462 - WebSocketSession.close() calls onWebSocketClose() with lock held
- #4460 - Provide a parameterless CustomRequestLog
- #4459 - Move multipart classes to jetty-server
- #4450 - websocket-core is exposing internal classes
- #4447 - websocket module should be split into separate modules for jetty and javax APIs (Jetty-10)
- #4441 - WebSocket rename for jetty-10
- #4434 - Implement ServletContext.get/setRequestCharacterEncoding and ServletContext.get/setResponseCharacterEncoding
- #4433 - Implement ServletContext.addJspFile
- #4432 - Implement ServletContext.set/getSessionTimeout
- #4430 - Duplicate generation of servlets/filters/listeners from context xml with quickstart
- #4408 - Javax WebSocket encoder/decoders not working in jetty 10.0.x
- #4407 - Javax WebSocket annotations not being used as default EndpointConfig
- #4401 - Cannot use javax.websocket client from within web app
- #4400 - Review HttpClient's ContentProvider
- #4383 - Errors deleting multipart tmp files java.lang.NullPointerException under heavy load
- #4382 - Support HTTP/1 upgrade to HTTP/2 in HttpClient
- #4379 - Allow WebSocket extension selection to be done from UpgradeListener
- #4369 - Review jsp configuration params for jetty-10
- #4368 - Review need for MultiParts interface in jetty-10
- #4361 - Update jetty-10.0.x to apache jasper 9.0.29
- #4349 - Verify WebSocket client behaviour for negotiation of internal extensions.
- #4342 - OpenID module cannot create HttpClient in Jetty 10
- #4341 - sending WebSocket frames modifies the payload ByteBuffer
- #4340 - Continuing after ServiceLoader ServiceConfigurationError.
- #4321 - Review Graceful shutdown in jetty-10
- #4315 - Jetty-10 WebSocketSession stopped twice by SessionTracker
- #4238 - how to pass jetty properties into OSGI for xml configuration
- #4228 - demo keystore is no longer copied to jetty-base when enabling ssl
- #4226 - WebSocketCoreSession leaks into JPMS exported classes
- #4225 - Fix JPMS transitivity
- #4222 - Major/Minor Version wrong (jetty 10 is servlet 4)
- #4215 - fix flaky ClientConnectTest and change WS connectTimeout
- #4152 - WebSocket autoFragment does not fragment based on maxFrameSize
- #4150 - Module org.eclipse.jetty.alpn.client not found, required by org.eclipse.jetty.proxy
- #4148 - Cannot configure maxFrameSize with javax websockets.
- #4147 - autobahn tests for jetty, javax websocket APIs
- #4076 - Restarting quickstarted webapp throws IllegalStateException: ServletContainerInitializersStarter already exists
- #4058 - Review Locker
- #4035 - Fix Secure javax.websocket Client examples
- #4021 - Removing @deprecated methods / classes from jetty-9.4.x merge
- #3953 - Client configuration for direct/heap ByteBuffers
- #3952 - Server configuration for direct/heap ByteBuffers
- #3951 - Consider adding demand API to HTTP/2
- #3924 - Deprecate Resource.writeTo(OutputStream, long, long)
- #3920 - Draft 1 for week 1.
- #3897 - Jetty 10 new documentation
- #3872 - Review exposure of JavaxWebSocketServletContainerInitializer
- #3849 - ClosedChannelException from jetty-test-webapp javax websocket chat example
- #3847 - Checkstyle cleanup
- #3839 - JavaxWebSocketServletContainerInitializer fails
- #3809 - sending WebSocket close frame with error StatusCode does not do a hard close (Jetty-10)
- #3802 - WebSocket core - autobahn and MessageHandler refactor
- #3789 - XmlConfiguration set from property
- #3783 - jetty-10.0.x WebSocket core cleanup
- #3770 - use the default port of 0 for WebSocket tests
- #3734 - websocket suspend when input closed
- #3719 - Clean up jetty-10 modules
- #3712 - change maxIdleTime to idleTimeout in jetty-10 websockets
- #3705 - Review ClientUpgradeRequest exception handling
- #3703 - Cleanup webappconfiguration
- #3702 - Some fixes for running cometd6 on jetty-10
- #3666 - WebSocket - Handling sent 1009 close frame.
- #3661 - JettyWebSocketServerContainer exposes websocket common classes
- #3660 - jetty-10 WebSocket configuration refactor
- #3537 - Bootstrapping WebSockets with HTTP/2
- #3521 - flaky tests in jetty-websocket-tests ClientCloseTest
- #3465 - websocket negotiation of extension configuration parameters
- #3462 - client validation of websocket upgrade response
- #3458 - ensure users of the jetty-websocket-api do not have to see websocket-core classes
- #3453 - Removing moved Extension classes from jetty-websocket-api
- #3446 - allow jetty WebSockets to be upgraded using WebSocketUpgradeFilter in jetty-10
- #3432 - WebSocketChannel bug fixes, cleanup and javadoc updates for FrameHandler
- #3428 - Support Decoder lists on javax.websocket endpoints
- #3414 - add support for WebSocket UpgradeListeners in WebSocketClient
- #3412 - problems with jetty 10 WebSocket session customizer
- #3399 - XmlConfiguration jetty.webapps.uri is the uri of the webapp not the parent dir
- #3385 - Modernize jetty-util-ajax
- #3382 - Jetty WebSocket Session.suspend() not implemented
- #3380 - WebSocket should support jetty-io Connection.Listener
- #3379 - Tracking of WebSocket Sessions in WebSocket containers
- #3366 - javax-websocket-server tests
- #3351 - Restructure jetty-unixsocket module
- #3341 - XmlBasedHttpClientProvider in Jetty 10
- #3340 - Update PushCacheFilter to use Servlet 4.0 APIs
- #3333 - Jetty 10 standalone cannot start on the module-path
- #3320 - Review Jetty 10 module-info.java
- #3308 - Remove deprecated methods from sessions
- #3298 - Review jetty-10 websocket CompletableFuture usage.
- #3292 - Add autobahn profile to automatically run autobahn test suite in Jenkins
- #3290 - async websocket onOpen, onError and onClose in 10.0.x
- #3288 - Correct websocket artifactIds on jetty-10.0.x
- #3249 - Update to apache jasper 9.0.14 for jetty-10
- #3246 - javax-websocket-tests exception stacktraces
- #3225 - Response.sendError should not set reason.
- #3224 - Autobahn WebSocketServer failures in jetty 10
- #3213 - MetaInfConfigurationTest tests disabled in jetty-10.0.x
- #3209 - upgrade logback and log4j-slf4j (new artifact log4j-slf4j18-impl) to support slf4j api 1.8
- #3197 - Use jetty specific websocket API jar
- #3185 - Bundle-RequiredExecutionEnvironment: JavaSE-11 for Jetty 10.0.x
- #3182 - Restore websocket example files
- #3177 - fix argLine inheritance
- #3172 - Adding both WebSocket tests to /test-integration/ to verify behavior that is causing problems from within OSGi.
- #3170 - WebSocket proxy PoC
- #3139 - NPE on WebSocketServerContainerInitializer.configureContext(ServletContextHandler)
- #3106 - Websocket connection stats and request stats
- #3055 - Break out WebSocket core features into new websocket-core components
- #3012 - Refactor HttpCompliance and HttpComplianceSection to be friendlier to customization
- #3011 - Move HttpCompliance to HttpConfiguration
- #3010 - Move old MultiPart parsing implementation to jetty-http
- #3009 - Update Jetty 10 to use non-LEGACY Compliance Modes
- #2996 - ContextHandler.setDefaultContextPath() not implemented for quickstart.
- #2985 - Jetty 10 Configuration replacement algorithm incorrect
- #2983 - Jetty 10 Configuration abstraction
- #2978 - Add module-info.java to relevant Jetty modules
- #2973 - Build minimum requirement is now JDK 11
- #2909 - Remove B64Code
- #2788 - Graceful close of HTTP/2 Connection
- #2643 - Switch SslContextFactory.keystoreType from
JKS
toPKCS12
- #2609 - Make finding orphaned expired sessions common across SessionDataStores
- #2578 - Use addEventListener(EventListener listener)
- #2173 - Move server classes and dependencies out from websocket-core
- #2103 - Server should open connectors early in start sequence
- #2095 - Remove FastCGI multiplexing
- #2075 - Deprecating MultiException
- #1923 - GCThreadLeakPreventer won't work with Java 9
- #1761 - Make GzipHandler module more configurable
- #1676 - Remove Deprecated classes & methods
- #1350 - Dynamic selection of the transport to use based on ALPN on the client side
- #1337 - MultiPart Part.write(String fileName) - Write method used unexpected path
- #1165 - Document Jetty 10 changes to Websocket
- #987 - Can GzipHandler check if .gz file exists only by some paths?
- #300 - Implement Deflater / Inflater Object Pool
- #250 - Implement HTTP CONNECT for HTTP/2
- #132 - ClientConnector abstraction
- #113 - Add support for NCSA Extended Log File Format