- Helidon MP 3.x Upgrade Guide
In Helidon 3.x we have made some changes to APIs and runtime behavior. This guide will help you upgrade a Helidon MP 2.x application to 3.x.
Java 17 Runtime
Java 11 is no longer supported in Helidon 3. Java 17 or newer is required. Please follow the instructions in Prerequisites for proper installation.
javax.* namespace to jakarta.* namespace
Helidon 3 supports MicroProfile 5.0 and selected Jakarta EE 9.1 APIs. In Jakarta EE 9.1 the Java package namespace was changed from javax to jakarta. Therefore, you must change your application to use jakarta instead of corresponding javax for Jakarta EE packages.
In version 3.x Helidon supports MicroProfile 5.0 specification, which now is fully migrated to jakarta namespace.
As a result, javax module is no longer in dependency management of Helidon parent pom files.
MicroProfile 5.0 support
MicroProfile 5.0 enables MicroProfile APIs to be used together with Jakarta EE 9.1 (Jakarta EE namespace). This release was mainly focused on updating dependencies from javax to jakarta, as well as overall stability and usability improvements.
MicroProfile 5.0 lays the foundation for the rapid innovation of MicroProfile APIs for its 2022 releases.
MicroProfile 5.0 is an umbrella for the following specifications and their corresponding versions:
MicroProfile Config 3.1
MicroProfile Fault Tolerance 4.0.2
MicroProfile Health 4.0
MicroProfile JWT Authentication 2.1
MicroProfile Metrics 5.1.1
MicroProfile OpenAPI 3.1.1
MicroProfile OpenTracing 3.0
MicroProfile Rest Client 3.0
Helidon 3.x supports the following Jakarta EE specifications:
CDI (Jakarta Contexts and Dependency Injection) 4.0
JAX-RS (Jakarta RESTful Web Services) 3.1
JSON-B (Jakarta JSON Binding) 3.0
JSON-P (Jakarta JSON Processing) 2.1
Jakarta Annotations 2.1.1
Jakarta Persistence API 3.1
Jakarta Transactions API 2.0
Jakarta WebSocket API 2.1
Jakarta Bean Validation 3.0
Corresponding changes to Helidon code were made to support the corresponding specifications' versions.
Incompatible changes for each specification
Migration from javax to jakarta namespace is making this release backward incompatible with previous version of MicroProfile. For each specification there are also API and functional changes, described below.
MicroProfile specifications
MicroProfile Config 3.1:
Incompatible changes described in MicroProfile Config 3.1 Specification
MicroProfile Fault Tolerance 4.0.2:
Incompatible changes described in MicroProfile Fault Tolerance 4.0.2 Specification
MicroProfile Health 4.0:
Incompatible changes described in MicroProfile Health 4.0 Specification
MicroProfile JWT Authentication 2.1:
Incompatible changes described in MicroProfile JWT Authentication 2.1 Specification
MicroProfile Metrics 5.1.1:
Incompatible changes described in MicroProfile Metrics 5.1.1 Specification
MicroProfile OpenAPI 3.1.1:
Incompatible changes described in MicroProfile OpenAPI 3.1.1 Specification
MicroProfile OpenTracing 3.0:
Incompatible changes described in MicroProfile OpenTracing 3.0 Specification
MicroProfile Rest Client 3.0:
Incompatible changes described in MicroProfile Rest Client 3.0 Specification
Supported Jakarta EE specifications
CDI (Jakarta Contexts and Dependency Injection) 4.0:
Changes described in CDI (Jakarta Contexts and Dependency Injection) 4.0 Specification
JAX-RS (Jakarta RESTful Web Services) 3.1:
Moved to
jakartanamespace. Changes described in JAX-RS (Jakarta RESTful Web Services) 3.1SpecificationJSON-B (Jakarta JSON Binding) 3.0:
Moved to
jakartanamespace. Changes described in JSON-B (Jakarta JSON Binding) 3.0 SpecificationJSON-P (Jakarta JSON Processing) 2.1:
Moved to
jakartanamespace.Jakarta Annotations 2.1.1:
Moved to
jakartanamespace. Moved tojakartanamespace. Full information in Jakarta Annotations 2.1.1 SpecificationJakarta Persistence API 3.1:
Moved to
jakartanamespace. Changes described in Jakarta Persistence API 3.1 SpecificationJakarta Transactions API 2.0:
Moved to
jakartanamespace. Changes described in Jakarta Transactions API 2.0 SpecificationJakarta WebSocket API 2.1:
Moved to
jakartanamespace. Changes described in Jakarta WebSocket API 2.1 SpecificationJakarta Bean Validation 3.0:
Moved to
jakartanamespace. Changes described in Jakarta Bean Validation 3.0 Specification
Please, read each specification carefully for incompatible changes!
Deprecations
The custom Helidon OCI clients have been deprecated. Use the OCI Java SDK instead. If you use Helidon MP you can inject OCI SDK clients by adding the dependency
io.helidon.integrations.oci.sdk:helidon-integrations-oci-sdk-cdi.
See Resolving compatibility issue with OCI SDK for detailed information on how to work around this issue.
The
MultiPart buffered readershave been deprecated. Use theMultiPart stream readersinstead.
Helidon Common
Deprecations in the following classes:
Resource- old configuration approach (since 2.0)ThreadPoolSupplier- Named thread pools (since 2.4.2)
More information in the following Task.
Media Common
Deprecations in the following classes:
ContentReaders- Methods with alternatives (since 2.0)ContentTypeCharset- Class with alternative (since 2.0)ContentWriters- Methods with alternatives (since 2.0)MessageBodyReaderContext- Methods with alternatives (since 2.0)MessageBodyWriterContext- Methods with alternatives (since 2.0)ReadableByteChannelPublisher- Class with alternative (since 2.0)
More information in the following Task.
Metrics
Deprecations in the following classes:
MetricsSupport- 3 methods, replacing Config with metrics settingsKeyPerformanceIndicatorMetricsSettings- New class in metrics API, for backward compatibility onlyRegistryFactory- New class in metrics API, for backward compatibility only
More information in the following Task.
Common Context
Deprecations in the following class:
DataPropagationProvider- clearData should use new method
More information in the following Task.
GRPC core
Deprecations:
JavaMarshaller- removed support for JavaMarshaller
More information in the following Task.
LRA
Deprecations in the following class:
CoordinatorClient- multiple methodsHeaders
More information in the following Task.
MP Messaging
Deprecations in the following class:
MessagingCdiExtension- Alternative methods used
More information in the following Task.
JWT
Deprecations in the following class:
Jwt- Audience can be a list (since 2.4.0)
More information in the following Task.
MP Metrics
Deprecations in the following class:
MetricUtil- multiple methodsMetricsCdiExtension- multiple methods
More information in the following Task.
HTTP Signature Security Provider
backwardCompatibleEol- set to false
More information in the following Task.
Service Common
Deprecations in the following class:
HelidonRestServiceSupport- method configureEndpoint(Rules)
More information in the following Task.
WebServer
Static content supportinWebServer- moved to a separate module. Fully removed fromWebServermodule.
More information in the following Task.