-
Notifications
You must be signed in to change notification settings - Fork 356
Road Map
jansupol edited this page Aug 6, 2024
·
67 revisions
The following branches are currently being developed:
- Jersey 2.x (EE8 - javax compatible)
- Jersey 3.0.x (Jakarta EE9 compatible)
- Jersey 3.1.x (Jakarta EE10 compatible)
- Jersey 4.0.x (Jakarta EE11 compatible)
We also have some planned future releases:
- Jersey 2.44 July 2024
- Allow long content length in the JDK connector
- Allow having multiple annotations for multipart endpoint with @FormDataParam in any order
- Remove synchronized from Apache stream wrappers
- Document Multipart Configuration
- Refactoring Maven Artifacts to improve new projects creation
- Support for Virtual Threads in Executor Services
- MAX_HEADER_SIZE for the Netty connector
- Unify the SniConfigurator with other branches
- update Jackson to 2.17.1
- prevent calling ServletRequest#getInputStream if FILTER_FORWARD_ON_404
- Support missing Content-Length header
- Prevent blowing connection numbers for reoccurring SSLContextFatories
- Better explanation of missing jersey-hk2 module consequences.
- Wrap call of deprecated HttpServletResponse#setStatus into try-catch
- Support Multipart with Buffered Entity and Netty Connector
- Prevent NPE in micrometer when there is no response & 404
- Last-Modified header is garbled when accessing wadl document on the Japanese locale
- Allow ChunkedInput#close to close the underlying stream
- Propagate WebApplicationException from SseEventSource to the provided error handler
- Jersey 2.43 May 2024
- ASM 9.7 (JDK 23 support)
- Jersey-micrometer module better supports client errors
- Fix support of HK2 Factories
- Can turn off SNIHostName - support for Domain Fronting
- Add the ability to configure the queue capacity for ChunkedOutput
- Jersey 2.42 March 2024
- Futures from async client requests can be canceled - it is propagated to the connectors, and it impacts the long-running async requests.
- ExceptionMappers can be prioritized based on their @Priority values
- Adopted Jackson 16 (additional StreamReadConstraints)
- Multipart ContentDisposition file name is encoded to prevent file executions
- Jersey SslConfigurator accepts KeyStore and Trustore as an URI
- Jersey 2.41 October 2023
- HTTP/2 support with Jetty Client Connector & Jetty Server Container
- RFC 6570 support (URI templates in UriBuilder)
- New Jersey-micrometer module to support io.micrometer
- Jackson 2.15 support + new JacksonFeature.maxStringLength method
- Multipart Support in Netty & Jetty Connector
- BeanParam Support in ProxyClient module
- Netty support for 100-Continue
- Default Connector and Netty Connector support ClientProperties.SSL_CONTEXT_SUPPLIER that allows for providing a Supplier that has a priority over ClientBuilder#sslContext
- Adopted ASM 9.6 (JDK 22)
- Jersey tested with GraalVM 20.0.1
- Jersey 2.40 June 2023
- ASM 9.5 (JDK 21 support)
- Netty Connector supports RequestEntityProcessing.BUFFERED (i.e. not only chunk encoding)
- Allow for choosing the client connector using ClientProperties.CONNECTOR_PROVIDER property. Works also when the property is set using microprofile-config.properties (with org.glassfish.jersey.ext.microprofile:jersey-mp-config & org.eclipse.microprofile.config implementation)
- ParamConverters #toString() and fromString() do not throw IEA exception by default (unless configured to do so by CommonProprties.PARAM_CONVERTERS_THROW_IAE) to speedup request processing.
- A number of fixes
- Jersey 2.39.1 Mar 2023
- Fixed a bug with MediaType caching
- Support for Jersey modules to be able to be instantiated by 3rd party Jakarta REST implementations while injecting with
@Context
- Fixed archetypes to pass JUnit 5 tests
- Jetty connector accepts custom HostNameVerifier registered by ClientBuilder#hostnameVerifier()
- Jersey 2.39 Feb 2023
- Better SNI support, the SNIServerName is set by the user-specified HOST HTTP header
- For the pure Jersey client, with no Injection points (No @Context and @Inject), HK2 is no longer required
- Jersey no longer fails with JDK unsupported by the ASM, it just prints a warning. Made to support JDK 21 without the ASM supporting it, yet.
- Jersey 2.38 Dec 2022
- Performance improvements
- Java 20 support
- Fix for Container#reload functionality
- Fewer occurrences of the same warning messages
- JUnit 5 is the main test engine for Jersey Test Framework
- Jersey 2.37 Sep 2022
- Support GSON JSON media (jersey-media-json-gson)
- Support CompletionStage<Response>
- Additional Jetty client properties
- OSGi support for Jetty & Netty client, cdi-rs-inject, jersey-media-kryo, and jersey-declaratove-linking modules.
- Proxy support for the default HttpUrlConnector.
- Jersey 2.36 Jun 2022
- Apache HTTP Client 5.x support
- Ability to redact HTTP headers on LoggingFeature
- JacksonFeature configurable to enable and disable certain Jackson modules
- Jackson Adopt Jackson 2.13.3 support
- JDK 19 support
- Netty Connector follow-redirects support
- Netty Connector HTTP proxy support
- Netty Connector proxy handler to support JDK's options
- Jersey 2.35 September 2021
- JDK 17 support
- Native image support for core Jersey modules
- Jersey Test JUnit 5 support
- Optional support in Path/Query/.../Param
- First Beta incubating module for supporting CDI InjectionManager without HK2 in EE environment
- Support for Feature & Dynamic feature as a JDK service (requirement for Jakarta REST 3.1)
- Jersey 2.34 April 2021
- CDI injection works on a client
- @Inject can be used instead of @Context for JAX-RS interfaces in conjunction with jersey-cdi-rs-inject module
- Microprofile REST Client 2.0
- Smaller Jersey monitoring fixes
- Adopted ASM 9.1, partial JDK 17 support
- Multipart supports RFC 5987 filename attributes
- ParamConverter support for Arrays, Optional
- Fixes CVE-2021-28168
- Jersey 2.33 - The release using the old javax.ws.rs API, December 2020
- Adopted ASM 9.0.
- Adopted Jackson 2.11.
- Made JAX-B API dependency optional.
- Minor fixes and improvements.
- Jersey 2.32 - The release using the old javax.ws.rs API, September 2020
- new ClientBuilderListener SPI that allows for setting properties as a first thing before the Client is created.
- MP RestClient allows regexps on @Path of REST interfaces
- Update MP Rest Client support to 1.4.1
- It is possible to define priority on Features, to guarantee the order of Feature processing
- Kryo uses setRegistrationRequired(true) by default
- Updated support for Helidon 2.0.2 Connector
- Allows using Apache HttpEntity as an Entity type for the request
- Feature that allows for Http 100 usage using the new Expect100ContinueFeature using the default HttpUrlConnector
- Better settings of READ_TIMEOUT and connection pool constraint for NettyConnector
- Jersey 2.31 - The release using the old javax.ws.rs API, May 2020
- JDK 14, JDK 15 support.
- Connector for Helidon Web Client.
- Tighten Security on JAXB SaxParserFactory.
- Automatically Disable WADL when JAXB not on the classpath.
- READ_TIMEOUT settable per request for Jetty & Netty connectors.
- Apache connectors able to use System properties
- Improved documentation
- Updated dependencies.
- Jersey 2.30.1 - February 2020. The main changes include:
- Fix Jersey with JDK 11 (JDK 8, JDK12, and JDK13) worked fine with 2.29
- Fix HK2 AbstractBinder injection in Features
- Netty Connector allows for reusing Netty Channels
- When multiple Cookies with the same name are used, the one that is not expired is used.
- Jersey 2.30 - January 2020. The improvements include:
- HeaderDelegateProvider functional (again)
- HK2 skips @Inject fields (with CDI extension module) unless declared by HK2CustomBoundsTypeProvider
- HK2 AbstractBinder fix not to be invoked twice
- Update to Jetty, Netty and Apache Connectors
- added PreInvocationInterceptor and PostInvocationInterceptor SPI
- added InvocationBuilderListener SPI
- Jersey works with JDK 13
- Jersey 2.29.1 - Jakarta RESTful Web Services 2.1.6 compliant, September 2019 The changes include:
- Microprofile Rest Client 1.3.1 support
- Update to Apache connectors - allows for richer configuration
- Jersey 2.29 - Release of fixes provided by the community as well as new features, June 2019. The features include:
- Possibility to pass Configuration properties from the environment variables or a config file
- Microprofile Rest Client 1.2 support
- Update to Jetty connectors - based on feedback in the issue tracker, connectors should allow for richer configuration
- JDK 11 support
- Possibility to use HK2 AbstractBinder again
- Spring 5 module
- Jersey 2.28 - The initial release, contains updated dependencies and new licenses, January 2019.
- Jersey 4.0.0-M1
- Jakarta REST 4.0 compatible (certified Jakarta REST compatibility)
- Dropped support of SimpleFramework container, Apache 4 Client connector, Jetty 11
- Move AbstractBinder to HK2 module
- new UriInfo#getMatchedResourceTemplate and ExtendedUriInfo#getMatchedResourceTemplates methods.
- Jersey 3.1.8, July 2024
- Allow long content length in the JDK connector
- Allow having multiple annotations for multipart endpoint with @FormDataParam in any order
- Remove synchronized from Apache stream wrappers
- Document Multipart Configuration
- Refactoring Maven Artifacts to improve new projects creation
- Support for Virtual Threads in Executor Services
- MAX_HEADER_SIZE for the Netty connector
- Unify the SniConfigurator with other branches
- update Jackson to 2.17.1
- prevent calling ServletRequest#getInputStream if FILTER_FORWARD_ON_404
- Support missing Content-Length header
- Prevent blowing connection numbers for reoccurring SSLContextFatories
- Better explanation of missing jersey-hk2 module consequences.
- Wrap call of deprecated HttpServletResponse#setStatus into try-catch
- Support Multipart with Buffered Entity and Netty Connector
- Prevent NPE in micrometer when there is no response & 404
- Last-Modified header is garbled when accessing wadl document on the Japanese locale
- Allow ChunkedInput#close to close the underlying stream
- Propagate WebApplicationException from SseEventSource to the provided error handler
- Jersey 3.1.7, May 2024
- ASM 9.7 (JDK 23 support)
- Jersey-micrometer module better supports client errors
- Fix support of HK2 Factories
- Can turn off SNIHostName - support for Domain Fronting
- Add the ability to configure the queue capacity for ChunkedOutput
- Allow to limit the number of Enity Parts in Multipart messages
- Allow to turn on virtual threads in the Executor Services
- Jersey 3.1.6 April 2024
- ASM 9.7 - support for JDK 23
- Futures from async client requests can be canceled - it is propagated to the connectors, and it impacts the long-running async requests.
- ExceptionMappers can be prioritized based on their @Priority values
- Adopted Jackson 16 (additional StreamReadConstraints)
- Multipart ContentDisposition file name is encoded to prevent file executions
- Jersey SslConfigurator accepts KeyStore and Trustore as an URI
- ProxyClient - Adding support for private fields in
@BeanParam
- Jersey 3.1.5 Dec 2023
- Fixed Jetty Connector Provider
- Have Jetty 11 modules as well as Jetty 12 modules for both Connector and Container.
- Jersey 3.1.4 Dec 2023
- HTTP/2 support with Jetty Client Connector & Jetty Server Container
- RFC 6570 support (URI templates in UriBuilder)
- New Jersey-micrometer module to support io.micrometer
- Jackson 2.15 support + new JacksonFeature.maxStringLength method
- Multipart Support in Netty & Jetty Connector
- Netty support for 100-Continue
- Default Connector and Netty Connector support ClientProperties.SSL_CONTEXT_SUPPLIER that allows for providing a Supplier that has a priority over ClientBuilder#sslContext
- Adopted ASM 9.6 (JDK 22)
- Jersey tested with GraalVM 20.0.1
- Jersey 3.1.3 Jul 2023
- ASM 9.5 (JDK 21 support)
- Netty Connector supports RequestEntityProcessing.BUFFERED (i.e. not only chunk encoding)
- Allow for choosing the client connector using ClientProperties.CONNECTOR_PROVIDER property. Works also when the property is set using microprofile-config.properties (with org.glassfish.jersey.ext.microprofile:jersey-mp-config & org.eclipse.microprofile.config implementation)
- ParamConverters #toString() and fromString() do not throw IEA exception by default (unless configured to do so by CommonProprties.PARAM_CONVERTERS_THROW_IAE) to speedup request processing.
- Jersey 3.1.2 - May 2023
- Better SNI support, the SNIServerName is set by the user-specified HOST HTTP header
- For the pure Jersey client, with no Injection points (No @Context and @Inject), HK2 is no longer required
- Jersey no longer fails with JDK unsupported by the ASM, it just prints a warning.
- JDK 21 support
- Jetty connector accepts custom HostNameVerifier registered by ClientBuilder#hostnameVerifier()
- Jersey 3.1.1 - Jan 2023
- Performance improvements
- Java 20 support
- Fix for Container#reload functionality
- Fewer occurrences of the same warning messages
- JUnit 5 is the main test engine for Jersey Test Framework
- Jersey 3.1.0
- Jakarta EE 10 compatible final release
- Better @Inject support of Jakarta REST classes
- Fixed Container#reload not to log an exception regarding HK2 restart
- Updated dependencies to EE 10 APIs and related implementations
- Updated ASM to 9.4 for JDK 20 support
- Jersey 3.1.0-M8:
- OSGi header updates
- Jersey 3.1.0-M7:
- Updated dependencies
- Apache HTTP Client 5.x Connector
- JDK 11 (java.net.http aka jnh) HTTP Client Connector (jersey-jnh-connector)
- Ability to redact HTTP headers on LoggingFeature
- JacksonFeature configurable to enable and disable certain Jackson modules
- Jackson Adopt Jackson 2.13.3 support
- JDK 19 support
- Netty Connector follow-redirects support
- Netty Connector HTTP proxy support
- Netty Connector proxy handler to support JDK's options
- Helidon Connector support is back
- MP Config support is updated to 3.0
- MP Rest Client support is back
- Spring 6 support
- Jersey 3.1.0-M3:
- Compliant version compatible with Jakarta REST 3.1
- Changes in default ports of SeBootstrap - 80 & 443 changed for 8080 & 8443
- Jersey 3.1.0-M2:
- Support Jakarta EE 10 dependencies (Servlet 6, CDI 4)
- Jersey 3.1.0-M1:
- MP REST Client 3.0 support
- Jackson 2.13 support & Jackson JAX-B/3 Annotations
- Optionally disallow HTTP requests without a media type (/) to match any @Consumes
- @ApplicationPath support in the non-servlet deployments
- Add BeanParam support to WebResourceFactory of Jersey proxy-client
- Jakarta REST bootstrap API included.
- EntityPart implementation
- Microprofile REST Client implementation is back
- A mandatory default ExceptionMapper provided
- JSON-B impl replaced with Parsson dependency
- Jersey 3.0.15 July 2024
- Allow long content length in the JDK connector
- Allow having multiple annotations for multipart endpoint with @FormDataParam in any order
- Remove synchronized from Apache stream wrappers
- Document Multipart Configuration
- Refactoring Maven Artifacts to improve new projects creation
- Support for Virtual Threads in Executor Services
- MAX_HEADER_SIZE for the Netty connector
- Unify the SniConfigurator with other branches
- update Jackson to 2.17.1
- prevent calling ServletRequest#getInputStream if FILTER_FORWARD_ON_404
- Support missing Content-Length header
- Prevent blowing connection numbers for reoccurring SSLContextFatories
- Better explanation of missing jersey-hk2 module consequences.
- Wrap call of deprecated HttpServletResponse#setStatus into try-catch
- Support Multipart with Buffered Entity and Netty Connector
- Prevent NPE in micrometer when there is no response & 404
- Last-Modified header is garbled when accessing wadl document on the Japanese locale
- Allow ChunkedInput#close to close the underlying stream
- Propagate WebApplicationException from SseEventSource to the provided error handler
- Jersey 3.0.14 May 2024
- ASM 9.7 (JDK 23 support)
- Jersey-micrometer module better supports client errors
- Fix support of HK2 Factories
- Can turn off SNIHostName - support for Domain Fronting
- Add the ability to configure the queue capacity for ChunkedOutput
- Allow to limit the number of Enity Parts in Multipart messages
- Allow to turn on virtual threads in the Executor Services
- Jersey 3.0.13 March 2024
- Futures from async client requests can be canceled - it is propagated to the connectors, and it impacts the long-running async requests.
- ExceptionMappers can be prioritized based on their @Priority values
- Adopted Jackson 16 (additional StreamReadConstraints)
- Multipart ContentDisposition file name is encoded to prevent file executions
- Jersey SslConfigurator accepts KeyStore and Trustore as an URI
- Jersey 3.0.12 Nov 2023
- HTTP/2 support with Jetty Client Connector & Jetty Server Container
- RFC 6570 support (URI templates in UriBuilder)
- New Jersey-micrometer module to support io.micrometer
- Jackson 2.15 support + new JacksonFeature.maxStringLength method
- Multipart Support in Netty & Jetty Connector
- Netty support for 100-Continue
- Default Connector and Netty Connector support ClientProperties.SSL_CONTEXT_SUPPLIER that allows for providing a Supplier that has a priority over ClientBuilder#sslContext
- Adopted ASM 9.6 (JDK 22)
- Jersey tested with GraalVM 20.0.1
- Jersey 3.0.11 July 2023
- ASM 9.5 (JDK 21 support)
- Netty Connector supports RequestEntityProcessing.BUFFERED (i.e. not only chunk encoding)
- Allow for choosing the client connector using ClientProperties.CONNECTOR_PROVIDER property. Works also when the property is set using microprofile-config.properties (with org.glassfish.jersey.ext.microprofile:jersey-mp-config & org.eclipse.microprofile.config implementation)
- ParamConverters #toString() and fromString() do not throw IEA exception by default (unless configured to do so by CommonProprties.PARAM_CONVERTERS_THROW_IAE) to speedup request processing.
- A number of fixes
- Jersey 3.0.10 - March 2023
- Fixed a bug with MediaType caching
- Support for Jersey modules to be able to be instantiated by 3rd party Jakarta REST implementations while injecting with
@Context
- Fixed archetypes to pass JUnit 5 tests
- Jetty connector accepts custom HostNameVerifier registered by ClientBuilder#hostnameVerifier()
- Jersey 3.0.9 - Dec 2022
- Performance improvements
- Java 20 support
- Fix for Container#reload functionality
- Fewer occurrences of the same warning messages
- JUnit 5 is the main test engine for Jersey Test Framework
- Jersey 3.0.8 - Sep 2022
- OSGi support for cdi-rs-inject module.
- Jersey 3.0.7 - Aug 2022
- Service release
- Jersey 3.0.6 - Aug 2022
- Support GSON JSON media (jersey-media-json-gson)
- Proxy support for the default HttpUrlConnector.
- Support CompletionStage<Response>
- Jersey 3.0.5 - Jun 2022
- The notable features inherited from 2.36:
- Apache HTTP Client 5.x support
- Ability to redact HTTP headers on LoggingFeature
- JacksonFeature configurable to enable and disable certain Jackson modules
- Jackson Adopt Jackson 2.13.3 support
- JDK 19 support
- Netty Connector follow-redirects support
- Netty Connector HTTP proxy support
- Netty Connector proxy handler to support JDK's options
- The notable features in 3.0.5:
- Helidon Connector support is back
- MP Config support is updated to 3.0
- MP Rest Client support is back
- Spring 6 support
- The notable features inherited from 2.36:
- Jersey 3.0.4 - February 2022
- MP REST Client 3.0 support
- Jackson 2.13 support & Jackson JAX-B/3 Annotations
- Optionally disallow HTTP requests without a media type (/) to match any @Consumes
- @ApplicationPath support in the non-servlet deployments (SE environment)
- Add BeanParam support to WebResourceFactory of Jersey proxy-client
- Jersey 3.0.3 - September 2021
- A release in alignment with Jersey 2.35
- Jersey 3.0.2 - April 2021
- A release in alignment with Jersey 2.34
- Better Jetty 11 support
- CDI injection works on a client
- @Inject can be used instead of @Context for JAX-RS interfaces in conjunction with jersey-cdi-rs-inject module
- Smaller Jersey monitoring fixes
- Adopted ASM 9.1, partial JDK 17 support
- Multipart supports RFC 5987 filename attributes
- ParamConverter support for Arrays, Optional
- Fixes CVE-2021-28168
- Jersey 3.0.1, January 2021
- Updates from Jersey 2.33
- Fixed Jetty container on JDK 11
- The Jakarta EE dependencies are final (CDI, BV, GF)
- Documentation available at https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest3x/index.html
- Jersey 3.0.0 Jakarta Restful Web Services 3.0.0 compliant release, November 2020.
- jakarta.* package APIs supported
- Jakarta EE 9 compatible implementation
- All Jakarta EE 9 APIs dependencies are final
- Fixed examples
- Jersey 3.0.0-RC2
- More updated dependencies,
- Jackson module working,
- Fixed Jetty 11 container support
- Jersey 3.0.0-RC1
- Updated dependencies,
- Removed Jackson 1 module
- Removed other non-supported modules using 3rd party code depending on old javax based API, such as Jackson, Spring, or Microprofile REST Client,
- Made BV module working
- Jersey 3.0.0-M6 - Another public milestone release, June 2020. Uses APIs based on the jakarta package that are part of the Jakarta EE 9 effort:
- Bean Validation, CDI, HK2, JAX-B, JSON-B, JSON-P, JPA, JTA, JSP, Servlet,...
- Jakarta EE 9 RESTful Web Services TCK passed
- Jersey 3.0.0-{M2, M3, M4, M5} - Not considered public releases, since there are used non-publicly available milestone dependencies.
- Jersey 3.0.0-M1 - The first milestone release, uses the new jakarta package based JAX-RS 3.0.0-M1 API, April 2020.
- Also depends on jakarta annotation 2.0.0-RC1, and jakarta JAX-B 3.0.0-RC2 APIs. All other APIs are still javax package based.
- JSON support does not work, Jackson, Yasson, and Moxy still depend on the old javax based JAX-RS API
- Microprofile REST Client support does not work, it depends on javax based JAX-RS API.
- Dropped Jackson1 support
- Jersey 2.44 - June 2024
- Fixes
- Jersey 3.1.8 - July 2024
- Features from 2.44
- Jakarta EE 10 compatible next iteration
- Jersey 3.0.15 - June 2024
- Features from 2.44
- Jakarta EE 9 compatible next iteration
- Jersey 3.5.0 - June 2023
- JPMS for 3.1.x
- Jersey 4.0 - Jakarta REST 4.0 compliant release, 2024
- incompatible 100% with Jersey 3.1 in the sense we may need to move injection-related classes (such as AbstractBinder) to HK2-related packages.