Skip to content

Migration Guide 2.5

Martin Kouba edited this page Nov 4, 2021 · 12 revisions

Flyway

We upgraded the Flyway dependency from 7.15 to version 8.0. Please refer to the Flyway release notes to see all the changes.

One important breaking change is that Flyway deprecated the Community support for database versions older than 5 years, for example: MySQL 5.7 and PostgreSQL 9.6. Therefore, users using the Flyway community and an unsupported database will have a failure at startup similar to:

Caused by: org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException: Flyway Teams Edition or MySQL upgrade required: 
MySQL 5.7 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.

Hibernate with Panache split packages

To avoid split packages, the following classes was deprecated in 2.1 and are now removed:

  • io.quarkus.hibernate.orm.panache.ProjectedFieldName has been removed in favor of io.quarkus.hibernate.orm.panache.common.ProjectedFieldName.

MongoDB with Panache split packages

To avoid split packages, the following classes was deprecated in 2.1 and are now removed:

  • io.quarkus.mongodb.panache.MongoEntity has been removed in favor of io.quarkus.mongodb.panache.common.MongoEntity.
  • io.quarkus.mongodb.panache.ProjectionFor has been removed in favor of io.quarkus.mongodb.panache.common.ProjectionFor.
  • io.quarkus.mongodb.panache.PanacheUpdate has been removed in favor of io.quarkus.mongodb.panache.common.PanacheUpdate.
  • io.quarkus.mongodb.panache.reactive.ReactivePanacheUpdate has been removed in favor of io.quarkus.mongodb.panache.common.reactive.ReactivePanacheUpdate.

Vert.x

The quarkus-vertx extension no longer depends on the quarkus-jackson extension. As a result, if your application depends on quarkus-vertx and makes use of the io.vertx.core.json.JsonObject.mapFrom() or the io.vertx.core.json.JsonObject.mapTo() methods then the quarkus-jackson extension should be added (either manually or as a transient dependency) to the project dependencies.

Qute

Scanning

The templates directories are also scanned in all application archives and in extension runtime modules. Previously, only the templates directory from the application root was considered. Note that it's possible to exclude any file from any templates directory via the quarkus.qute.template-path-exclude configuration property. Excluded files are neither parsed nor validated during build and are not automatically available at runtime.

Iteration Metadata Prefix

The keys used to access the iteration metadata inside a loop cannot be used directly anymore. Instead, a prefix is used to avoid possible collisions with variables from the outer scope. By default, the alias of an iterated element suffixed with an underscore is used as a prefix. For example, the hasNext key must be prefixed with it_ inside an {#each} section: {it_hasNext}. And must be used in a form of {item_hasNext} inside a {#for} section with the item element alias.

The prefix is configurable either via EngineBuilder.iterationMetadataPrefix() for standalone Qute or via the quarkus.qute.iteration-metadata-prefix configuration property in a Quarkus application. Three special constants can be used:

  1. <alias_> - the alias of an iterated element suffixed with an underscore is used (default); e.g. {item_hasNext}
  2. <alias?> - the alias of an iterated element suffixed with a question mark is used; e.g. {item?hasNext}
  3. <none> - no prefix is used - the default behavior in previous versions; e.g. {hasNext}

Current version

Migration Guide 3.17

Next version in main

Migration Guide 3.18

Clone this wiki locally