Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4x] [Doc] - Migration guides #7715

Merged
merged 15 commits into from
Oct 19, 2023
12 changes: 4 additions & 8 deletions docs/about/doc_overview.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -66,20 +66,16 @@ xref:{rootdir}/se/guides/quickstart.adoc[Using the SE Quick Start Guide]

--

//Migration Guides
//Upgrade Guides
[CARD]
.Upgrading Helidon
[icon=storage]
--
Use the migration guides to help you upgrade your existing Helidon applications to the latest version of Helidon.
Use the upgrade guides to help you upgrade your existing Helidon applications to the latest version of Helidon.

xref:{rootdir}/mp/guides/migration_3x.adoc[Upgrade From Helidon MP 3.x]
xref:{rootdir}/mp/guides/upgrade_4x.adoc[Upgrade From Helidon MP 4.x]

xref:{rootdir}/mp/guides/migration.adoc[Upgrade From Helidon MP 2.x]

xref:{rootdir}/se/guides/migration_3x.adoc[Upgrade From Helidon SE 3.x]

xref:{rootdir}/se/guides/migration.adoc[Upgrade From Helidon SE 2.x]
xref:{rootdir}/se/guides/upgrade_4x.adoc[Upgrade From Helidon SE 4.x]

--

Expand Down
28 changes: 11 additions & 17 deletions docs/about/introduction.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -127,32 +127,26 @@ include::{rootdir}/includes/prerequisites.adoc[tag=prerequisites-table-details]
// end::prereqs[]
We also strongly suggest installing the xref:cli.adoc[Helidon CLI] (command line interface) which helps in generating and building Helidon projects.

== Migration
== Upgrade

To upgrade your current version of Helidon, follow the `Migration Guides`:
To upgrade your current version of Helidon, follow the `Upgrade Guides`:

To migrate from from Helidon 3.x to 4.x:
To upgrade from Helidon 3.x to 4.x:

//Mitia to create these guides for 4x

* link to SE 4x migration guide [tbd]
* link to MP 4x migration guide [tbd]


To migrate from Helidon 2.x to 3.x:

* xref:{rootdir}/se/guides/migration_3x.adoc[Helidon SE 3x Migration Guide]
* xref:{rootdir}/mp/guides/migration_3x.adoc[Helidon MP 3x Migration Guide]

To migrate from Helidon 1.x to 2.x:

* xref:{rootdir}/se/guides/migration.adoc[Helidon SE 2x Migration Guide]
* xref:{rootdir}/mp/guides/migration.adoc[Helidon MP 2x Migration Guide]
* xref:{rootdir}/se/guides/upgrade_4x.adoc[Helidon SE 4x Upgrade Guide]
* xref:{rootdir}/mp/guides/upgrade_4x.adoc[Helidon MP 4x Upgrade Guide]


To upgrade from Helidon 2.x to 3.x:

* xref:{rootdir}/se/guides/upgrade_3x.adoc[Helidon SE 3x Upgrade Guide]
* xref:{rootdir}/mp/guides/upgrade_3x.adoc[Helidon MP 3x Upgrade Guide]

To upgrade from Helidon 1.x to 2.x:

* xref:{rootdir}/se/guides/upgrade.adoc[Helidon SE 2x Upgrade Guide]
* xref:{rootdir}/mp/guides/upgrade.adoc[Helidon MP 2x Upgrade Guide]


== Next Steps
Expand Down
2 changes: 2 additions & 0 deletions docs/includes/attributes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,11 @@ endif::[]
:version-lib-microprofile-rs-operators-api: 3.1.1
:version-lib-microprofile-rest-client: 3.0
:version.lib.microprofile-telemetry-tck: 1.0
:version-lib-microprofile-telemetry: 1.0
:version-lib-microprofile-tracing: 3.0

// jakarta specifications
:version-lib-jakarta-core: 10
:version-lib-jakarta-cdi: 4.0.1
:version-lib-jakarta-websockets-api: 2.1.0
:version-lib-jakarta-bean-validation: 3.0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -20,7 +20,7 @@ ifndef::rootdir[:rootdir: {docdir}/../..]

== Java 11 Runtime

Java 11 is no longer supported in Helidon 3. Java 17 or newer is required.
Java 8 is no longer supported in Helidon 2. Java 11 or newer is required.

== Tracing

Expand Down
6 changes: 3 additions & 3 deletions docs/includes/guides/upgrade_3x.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -27,5 +27,5 @@ include::../attributes.adoc[]
Helidon 3.x is not fully backwards compatible with Helidon 2.x. For information
concerning upgrading from Helidon 2.x to 3.x see the following upgrade guides:

* xref:../mp/guides/migration_3x.adoc[Helidon MP 3.x Upgrade Guide]
* xref:../se/guides/migration_3x.adoc[Helidon SE 3.x Upgrade Guide]
* xref:../mp/guides/upgrade_3x.adoc[Helidon MP 3.x Upgrade Guide]
* xref:../se/guides/upgrade_3x.adoc[Helidon SE 3.x Upgrade Guide]
31 changes: 31 additions & 0 deletions docs/includes/guides/upgrade_4x.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

///////////////////////////////////////////////////////////////////////////////

= Upgrading from 3.x
:description: Helidon Upgrade Guide
:keywords: helidon upgrade migration

include::../attributes.adoc[]

== Upgrade Guides

Helidon 4.x is not fully backwards compatible with Helidon 3.x. For information
concerning upgrading from Helidon 3.x to 4.x see the following upgrade guides:

* xref:../mp/guides/upgrade_4x.adoc[Helidon MP 4.x Upgrade Guide]
* xref:../se/guides/upgrade_4x.adoc[Helidon SE 4.x Upgrade Guide]
4 changes: 2 additions & 2 deletions docs/mp/guides/overview.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2019, 2022 Oracle and/or its affiliates.
Copyright (c) 2019, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -76,7 +76,7 @@ Learn how to build a Helidon MicroProfile (MP) application from scratch.

[CARD]
.Helidon MP Upgrade guide
[link=migration.adoc]
[link=upgrade.adoc]
--
Learn how to upgrade your Helidon MP application from 1.x to 2.x.
--
Expand Down
4 changes: 2 additions & 2 deletions docs/mp/guides/migration.adoc → docs/mp/guides/upgrade.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2020, 2022 Oracle and/or its affiliates.
Copyright (c) 2020, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -29,7 +29,7 @@ will help you migrate a Helidon MP 1.x application to 2.x.



include::{rootdir}/includes/guides/migration.adoc[]
include::{rootdir}/includes/guides/upgrade.adoc[]

== MicroProfile Bundles

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2022 Oracle and/or its affiliates.
Copyright (c) 2022, 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
191 changes: 191 additions & 0 deletions docs/mp/guides/upgrade_4x.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
///////////////////////////////////////////////////////////////////////////////

Copyright (c) 2023 Oracle and/or its affiliates.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

///////////////////////////////////////////////////////////////////////////////

= Helidon MP 4.x Upgrade Guide
:description: Helidon MP 4.x Upgrade Guide
:keywords: helidon, porting, migration, upgrade, incompatibilities, 3.x
:rootdir: {docdir}/../..

include::{rootdir}/includes/mp.adoc[]


In Helidon 4.x we have made some changes to APIs and runtime behavior. This guide
will help you upgrade a Helidon MP 3.x application to 4.x.


== Java 21 Runtime

Java 17 is no longer supported in Helidon 4. Java 21 or newer is required. Please follow the instructions in xref:{rootdir}/about/prerequisites.adoc[Prerequisites] for proper installation.

Helidon 4 no longer uses Netty. Helidon MP is now running on Helidon WebServer which is based on Virtual threads technology, available in Java 21.


== MicroProfile 6.0 support

MicroProfile 6.0 enables MicroProfile APIs to be used together with Jakarta EE 10 Core Profile.

MicroProfile 6.0 is an umbrella for the following specifications and their corresponding versions:

* Open Telemetry {version-lib-microprofile-telemetry}
* MicroProfile Config {version-lib-microprofile-config}
* MicroProfile Fault Tolerance {version-lib-microprofile-fault-tolerance-api}
* MicroProfile Health {version-lib-microprofile-health}
* MicroProfile JWT Authentication {version-lib-microprofile-jwt}
* MicroProfile Metrics {version-lib-microprofile-metrics-api}
* MicroProfile OpenAPI {version-lib-microprofile-openapi-api}
* MicroProfile Rest Client {version-lib-microprofile-rest-client}

Includes:

* Jakarta EE Core Profile {version-lib-jakarta-core}

Helidon 4.x supports the following Jakarta EE specifications:

* CDI (Jakarta Contexts and Dependency Injection) {version-lib-jakarta-cdi}
* JAX-RS (Jakarta RESTful Web Services) {version-lib-jakarta-jaxrs-api}
* JSON-B (Jakarta JSON Binding) {version-lib-jakarta-jsonb-api}
* JSON-P (Jakarta JSON Processing) {version-lib-jakarta-jsonp-api}
* Jakarta Annotations {version-lib-jakarta-annotations-api}
* Jakarta Persistence API {version-lib-jakarta-persistence-api}
* Jakarta Transactions API {version-lib-jakarta-transaction-api}
* Jakarta WebSocket API {version-lib-jakarta-websockets-api}
* Jakarta Bean Validation {version-lib-jakarta-bean-validation}

Corresponding changes to Helidon code were made to support the corresponding specifications' versions.

=== MicroProfile specifications

Most of the MicroProfile specifications had relatively minor changes. The exception is Metrics which had substantial changes.

* *MicroProfile Config {version-lib-microprofile-config}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-config-3.0.1/microprofile-config-spec-3.0.1.html#_incompatible_changes[MicroProfile Config {version-lib-microprofile-config} Specification]

* *MicroProfile Fault Tolerance {version-lib-microprofile-fault-tolerance-api}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-fault-tolerance-4.0.2/microprofile-fault-tolerance-spec-4.0.2.html#_backward_incompatible_changes=[MicroProfile Fault Tolerance {version-lib-microprofile-fault-tolerance-api} Specification]

* *MicroProfile Health {version-lib-microprofile-health}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-health-4.0/microprofile-health-spec-4.0.html#_incompatible_changes[MicroProfile Health {version-lib-microprofile-health} Specification]

* *MicroProfile JWT Authentication {version-lib-microprofile-jwt}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-jwt-auth-2.0/microprofile-jwt-auth-spec-2.0.html#_incompatible_changes[MicroProfile JWT Authentication {version-lib-microprofile-jwt} Specification]

* *MicroProfile Metrics {version-lib-microprofile-metrics-api}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-metrics-5.0/microprofile-metrics-spec-5.0.html#_incompatible_changes[MicroProfile Metrics {version-lib-microprofile-metrics-api} Specification]

* *MicroProfile OpenAPI {version-lib-microprofile-openapi-api}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-open-api-3.1/microprofile-openapi-spec-3.1.html#incompatible_changes_30[MicroProfile OpenAPI {version-lib-microprofile-openapi-api} Specification]

* *MicroProfile Rest Client {version-lib-microprofile-rest-client}*:
+
Incompatible changes described in link:https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html#_incompatible_changes[MicroProfile Rest Client {version-lib-microprofile-rest-client} Specification]

=== Supported Jakarta EE specifications

* *CDI (Jakarta Contexts and Dependency Injection) {version-lib-jakarta-cdi}*:
+
Changes described in link:https://jakarta.ee/specifications/cdi/4.0/jakarta-cdi-spec-4.0.html#architecture[CDI (Jakarta Contexts and Dependency Injection) {version-lib-jakarta-cdi} Specification]

* *JAX-RS (Jakarta RESTful Web Services) {version-lib-jakarta-jaxrs-api}*:
+
Changes described in link:https://download.eclipse.org/microprofile/microprofile-rest-client-3.0/microprofile-rest-client-spec-3.0.html#_incompatible_changes[JAX-RS (Jakarta RESTful Web Services) {version-lib-jakarta-jaxrs-api}Specification]

* *JSON-B (Jakarta JSON Binding) {version-lib-jakarta-jsonb-api}*:
+
Changes described in link:https://jakarta.ee/specifications/jsonb/2.0/jakarta-jsonb-spec-2.0.html#change-log[JSON-B (Jakarta JSON Binding) {version-lib-jakarta-jsonb-api} Specification]


* *Jakarta Annotations {version-lib-jakarta-annotations-api}*:
+
Full information in link:https://jakarta.ee/specifications/annotations/2.0/annotations-spec-2.0.html[Jakarta Annotations {version-lib-jakarta-annotations-api} Specification]

* *Jakarta Persistence API {version-lib-jakarta-persistence-api}*:
+
Changes described in link:https://jakarta.ee/specifications/persistence/3.0/jakarta-persistence-spec-3.0.html#revision-history[Jakarta Persistence API {version-lib-jakarta-persistence-api} Specification]

* *Jakarta Transactions API {version-lib-jakarta-transaction-api}*:
+
Changes described in link:https://jakarta.ee/specifications/transactions/2.0/jakarta-transactions-spec-2.0.html#revision-history[Jakarta Transactions API {version-lib-jakarta-transaction-api} Specification]

* *Jakarta WebSocket API {version-lib-jakarta-websockets-api}*:
+
Changes described in link:https://jakarta.ee/specifications/websocket/2.0/websocket-spec-2.0.html#changes[Jakarta WebSocket API {version-lib-jakarta-websockets-api} Specification]

* *Jakarta Bean Validation {version-lib-jakarta-bean-validation}*:
+
Changes described in link:https://jakarta.ee/specifications/bean-validation/2.0/bean-validation_2.0.html#changelog[Jakarta Bean Validation {version-lib-jakarta-bean-validation} Specification]

NOTE: Please, read each specification carefully for incompatible changes!

=== Significant changes

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this where a new Security section would be added and David's info could be placed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

==== Smallrye

Smallrye group id was `org.jboss.jandex` and now is `io.smallrye`.

==== Metrics and observability

The correct work of observability in quickstarts now requires dependencies:

[source, xml]
----
<dependency>
<groupId>io.helidon.webserver.observe</groupId>
<artifactId>helidon-webserver-observe-metrics</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.helidon.metrics</groupId>
<artifactId>helidon-metrics-system-meters</artifactId>
<scope>runtime</scope>
</dependency>
----

==== Testing

Testing is now in a new package. It was:

[source, xml]
----
<dependency>
<groupId>io.helidon.microprofile.tests</groupId>
<artifactId>helidon-microprofile-tests-junit5</artifactId>
<scope>test</scope>
</dependency>
----

Now is:

[source, xml]
----
<dependency>
<groupId>io.helidon.microprofile.testing</groupId>
<artifactId>helidon-microprofile-testing-junit5</artifactId>
<scope>test</scope>
</dependency>
----


== Conclusion

Please proceed to xref:../introduction.adoc[Helidon MP Introduction] to find more information and documentation about each module.
Loading