Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ghusta/matrice-versions-spring-hibernate

Matrice des versions Spring / Hibernate / Java / Tomcat - 🇫🇷
https://github.com/ghusta/matrice-versions-spring-hibernate

hibernate matrix spring tomcat

Last synced: 6 days ago
JSON representation

Matrice des versions Spring / Hibernate / Java / Tomcat - 🇫🇷

Awesome Lists containing this project

README

        

= Matrice des versions Spring / Hibernate / Java / Tomcat
:encoding: utf-8
:toc: auto
:toclevels: 3
:icons: font

== Matrice globale

|===
| Spring Framework | Hibernate | Java | Tomcat

| 6.0
| 5.5+ +
6.0 pour JPA
| 17
| 10

| 5.3
| 5.2+
| 8+
| 8.5+

| 5.0
| 5.0+
| 8+
| 8.5+

| 4.3
| [3-5.2]
| 1.6+
| 6+

| 3.2
| [3.x-4.2]
| 1.6+
| 6+

| 2.5
| [3.2-3.6]
| 1.6+
| 6+
|===

== Matrice compatibilité Hibernate

|===
| Hibernate ORM | Java | JPA | Jakarta Persistence

| 7.0 footnote:[https://in.relation.to/2024/04/16/orm-70alpha1/[Hibernate 7.0.0.Alpha1]]
| 17+
| N/A
| 3.2

| 6.6 footnote:[https://in.relation.to/2024/08/08/orm-660/[Hibernate 6.6.0.Final]]
| 11, 17 ou 21
| N/A
| 3.1

| 6.5 footnote:[https://in.relation.to/2024/04/25/orm-650/[Hibernate 6.5.0.Final]]
| 11, 17 ou 21
| N/A
| 3.1

| 6.4
| 11, 17 ou 21
| N/A
| 3.1

| 6.3
| 11, 17 ou 21
| N/A
| 3.1

| 6.2
| 11, 17, 20 ou 21
| N/A
| 3.1

| 6.1
| 11, 17 ou 18
| N/A
| 3.1 and 3.0

| 6.0
| 11, 17 ou 18
| N/A
| 3.0

| 5.6
| 8, 11, 17 ou 18
| 2.2
| 3.0 +
(Maven : https://search.maven.org/artifact/org.hibernate/hibernate-core-jakarta[hibernate-core-jakarta])

| 5.5
| 8, 11 ou 17
| 2.2
| 3.0 +
(Maven : https://search.maven.org/artifact/org.hibernate/hibernate-core-jakarta[hibernate-core-jakarta])

| 5.4
| 8, 11 ou 17 (avec 5.4.32+)
| 2.2
| N/A

| 5.3
| 8 +
11 support partiel -> 5.3.3+ footnote:[v5.3.3 contient https://github.com/raphw/byte-buddy/blob/master/release-notes.md#5-july-2018-version-1813[ByteBuddy 1.8.13]] +
11 support complet -> 5.3.8+ footnote:[v5.3.8 introduit https://github.com/raphw/byte-buddy/blob/master/release-notes.md#29-september-2018-version-190[ByteBuddy 1.9.0], avec support complet de JDK 11 (voir https://github.com/hibernate/hibernate-orm/commit/f388420ecaba2553eaee53cedc335fea6262eea1[commit pour HHH-13005])] +
17 -> 5.3.22+ footnote:[Support de JDK 17 introduit par https://github.com/raphw/byte-buddy/blob/master/release-notes.md#21-february-2021-version-11021[ByteBuddy 1.10.21] (voir https://github.com/hibernate/hibernate-orm/commit/e61eff291320f83af6552eec7cf3a7bb7ddd9f59[commit pour HHH-14463], https://github.com/hibernate/hibernate-orm/commit/4fb18e27e3cecae458f12236dbe21b6761c2d7bf[commit] pour https://hibernate.atlassian.net/browse/HHH-14771[HHH-14771])]
| 2.2
| N/A

| 5.2
| 8
| 2.1
| N/A

| 5.1
| 6/7/8 -> 5.1.3; +
7/8 -> 5.1.16; +
8 pour 5.1.17
| 2.1
| N/A

| 5.0
| 6, 7 ou 8
| 2.1
| N/A

| 4.3
| 6+
| 2.1
| N/A

| 4.2
| 6+
| 2.0
| N/A

| 3.6
| 1.5+
| 2.0
| N/A

| 3.5
| 1.4+
| 2.0
| N/A

| 3.2
| 1.4+
| 1.0
| N/A
|===

Références :

- http://hibernate.org/orm/releases/#compatibility-matrix[Hibernate compatibility matrix]
- https://github.com/hibernate/hibernate-orm/wiki/Migration-Guides[Migration Guides]
- http://in.relation.to/2018/09/13/using-hibernate-orm-with-jdk11/[Using Hibernate ORM with JDK 11] : Hibernate ORM 5.3+
- https://in.relation.to/2021/09/14/ready-for-jdk17/[Hibernate: all systems go for Java 17]
- https://jakarta.ee/specifications/persistence/[Jakarta Persistence]

== Matrice compatibilité Spring

- https://projects.spring.io/spring-framework/
- https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/overview.html#overview[Spring Framework Overview]
- https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions#upgrades[Spring Upgrades]
- https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/htmlsingle/#spring-whats-new
- https://docs.spring.io/spring-framework/docs/2.5.x/reference/new-in-2.html#new-in-2-migrating-jdk

=== Matrice compatibilité Spring + Java

|===
| Spring FWK | Java

| 6.2.x
| [17-25 (expected)] _Note 2_

| 6.1.x
| [17-23] _Note 2_

| 6.0.x
| [17-21] _Note 2_, _Note 3_, _Note 4_, _Note 5_

| 5.3.x
| [8-21 (as of https://github.com/spring-projects/spring-framework/milestone/315[5.3.26])] _Note 2_

| 5.2.x
| [8-15]

| 5.1.x
| [8-12]

| 5.0.x
| [8-10]. _Note 2_

| 4.3.x
| [6-8]

| 4.x
| 6+

| 3.x
| [5-7]. _Note 1_

| 2.5
| 1.4+
|===

- _Note 1_ : Support Java 8 limité sur Spring 3.x, restreint au format de bytecode 1.7 (https://spring.io/blog/2013/05/21/spring-framework-4-0-m1-3-2-3-available/)
- _Note 2_ : Reprise versions JDK supportées du https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions#jdk-version-range[wiki Spring]
- _Note 3_ : https://springone.io/2021/sessions/from-spring-framework-5-3-to-6-0[From Spring Framework 5.3 to 6.0] (SpringOne 2021)
- _Note 4_ : https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6[A Java 17 and Jakarta EE 9 baseline for Spring Framework 6] (2021)
- _Note 5_ : https://spring.io/blog/2022/03/28/an-update-on-java-17-adoption[An update on Java 17+ adoption] (2022)

=== Matrice compatibilité Spring + Hibernate

|===
| Spring FWK | Hibernate

| 6.0.x
| Compatible Hibernate 5.5/5.6. +
Support Hibernate 6.x en tant que provider JPA (cf. https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.html[`LocalContainerEntityManagerFactoryBean`]). +
_Notes 10, 7_

| 5.3.x
| Hibernate [5.2-5.4]. _Note 9_

| 5.2.x
| Hibernate [5.0-5.4]. _Note 8_

| 5.1.x
| JPA 2.1+ ou Hibernate [5.0-5.3]. _Note 5_

| 5.0.x
| JPA 2.1+ ou Hibernate [5.0-5.2]. _Note 1_

| 4.3.x
| [3.6-5.2] _Note 4_

| 4.0.x
| [3.6-4]. _Note 2_

| 3.2.x
| [3-4.2.x]. _Note 3_

| 3.0.x
| [3.2-3.6]
|===

* _Note 1_ : https://docs.spring.io/spring/docs/5.0.2.RELEASE/spring-framework-reference/data-access.html#orm-hibernate
* _Note 2_ : Voir https://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/html/orm.html#orm-hibernate
* _Note 3_ : Hibernate 4.2 d'après le POM de _spring-orm_ 3.2.18
* _Note 4_ : https://github.com/spring-projects/spring-framework/issues/18899[Support for Hibernate ORM 5.2]
* _Note 5_ : https://github.com/spring-projects/spring-framework/issues/20850[Support for Hibernate ORM 5.3]
* _Note 6_ : https://github.com/spring-projects/spring-framework/issues/22128[Support for Hibernate ORM 6.0] (postponed)
* _Note 7_ : https://springone.io/2021/sessions/from-spring-framework-5-3-to-6-0[From Spring Framework 5.3 to 6.0] - new baseline contains Jakarta EE 9 / Hibernate ORM 6 -> 🎬 https://www.youtube.com/watch?v=btvh21K3yvU&t=604s
* _Note 8_ : Javadoc dans https://github.com/spring-projects/spring-framework/blob/5.2.x/spring-orm/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBean.java
* _Note 9_ :
** Javadoc dans https://github.com/spring-projects/spring-framework/commit/ba65cef52bbb28e8286faf6d36b5a7ed2b253fa5#diff-236ca7afd9b7f26eacc5c5119d5c0e02b567da3d9d0ea2981c959f656b03f485
** issue https://github.com/spring-projects/spring-framework/issues/25533
** doc : https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/data-access.html#orm-hibernate
* _Note 10_ : Javadoc dans https://github.com/spring-projects/spring-framework/blob/6.0.x/spring-orm/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBean.java

==== Persistance avec Hibernate

Voir la classe `LocalSessionFactoryBean` dans les packages `org.springframework.orm.hibernate3`, `org.springframework.orm.hibernate4`, `org.springframework.orm.hibernate5`.

NOTE: La classe `org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean` est remplacée par `org.springframework.orm.hibernate4.LocalSessionFactoryBean`.

==== Persistance avec JPA

Voir la classe `LocalContainerEntityManagerFactoryBean` dans le package `org.springframework.orm.jpa` par exemple.

== Notes diverses

=== Refactoring automatisé avec _OpenRewrite_

Un outil propose d'appliquer du refactoring de code ou des montées de versions des librairies de façon *automatisée*.
Il s'agit de https://docs.openrewrite.org/[OpenRewrite].

Ces refactorings sont présentés sous la forme de "recettes" (_recipes_).
Un catalogue de _recipes_ est présenté ici : https://docs.openrewrite.org/recipes.

==== _Recipes_ pour l'écosystème Spring

Il existe de nombreuses _recipes_ pour l'écosystème Spring, présentées ici : https://docs.openrewrite.org/recipes/java/spring.

Et en particulier pour _Spring Framework_ : https://docs.openrewrite.org/recipes/java/spring/framework.

Par exemple :

* link:https://docs.openrewrite.org/recipes/java/spring/framework/upgradespringframework_5_0[Migrate to Spring Framework 5.0]
* link:https://docs.openrewrite.org/recipes/java/spring/framework/upgradespringframework_5_1[Migrate to Spring Framework 5.1]
* link:https://docs.openrewrite.org/recipes/java/spring/framework/upgradespringframework_5_2[Migrate to Spring Framework 5.2]
* link:https://docs.openrewrite.org/recipes/java/spring/framework/upgradespringframework_5_3[Migrate to Spring Framework 5.3]