Skip to content

Road Map

jansupol edited this page Aug 6, 2024 · 67 revisions

The following branches are currently being developed:

We also have some planned future releases:

Released 2.x:

  • 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.

Released 4.0.x

  • 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.

Released 3.1.x:

  • 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

Released 3.0.x:

  • 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
  • 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
  • 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

Planned:

  • 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.
Clone this wiki locally