Compatibility with Jakarta EE 9.1 (Jakarta Persistence 3)

Description

Hibernate ORM 5.5 is out and it supports Jakarta EE through separate artifacts, which have been transformed to use the Jakarta EE API instead of the Java EE API (they are almost identical, except they exist in different packages).

We should do the same for Hibernate Search:

  • Create new "-jakarta" variants (a new module) for artifacts that rely on Jakarta EE instead of Java EE. These modules will simply take the code of the original artifact and replace Java EE dependency with a Jakarta EE dependency through bytecode transformation.

  • Create test modules for these modules. Ideally we should just transform existing tests and avoid copy/pasting them.

I believe this mainly affects the ORM mapper and the JSR-352 integration, but any module relying on a Java EE spec might need its own "variation" to support Jakarta EE.

There are examples of how to do the transformation in Hibernate ORM, but unfortunately it's using Gradle plugins. We will have to find out how to do this with Maven.

Activity

Show:

Yoann Rodière September 29, 2021 at 12:21 PM

Yoann Rodière June 17, 2021 at 12:51 PM
Edited

A Maven plugin that can be used to do the bytecode transformation: https://github.com/eclipse/transformer

According to Steve it’s similar to how the transformation is done in ORM 5.5.0, and requires a lot of setup. But at least it should work

Also, Scott Marlow contributed a bit to that project, so he might be able to help if we encounter problems.

Fixed

Details

Assignee

Reporter

Components

Sprint

Fix versions

Priority

Created June 14, 2021 at 6:59 AM
Updated December 2, 2021 at 2:33 PM
Resolved September 28, 2021 at 11:22 AM