Hello Adel, a small word of warning: each upgrade of `hibernate.cfg.xml` is a kind of traumatic experience for a simple installation. It would be good not to do several of them!
paul On 7 Jan 2019, at 10:47, Adel Atallah wrote: > Hi devs, > > As you may know, we are currently using a pretty old version of > Hibernate in XWiki and we could benefit from its upgrade. The new > version should bring many bug and security fixes (even though they > don't all apply to our current version) along with better APIs and the > possibility to integrate other tools (such as other / newer libraries > or a better connection pool such as the one mentioned in [1]) > > Currently, I've been trying to make the following upgrades: > * 3.6.9 to 4.0.1 > * 4.0.1 to 4.3.11 > * 4.3.11 to 5.0.12 > > The goal is to arrive at version 5.4.0, which is at this date the > latest stable version. > I chose to make the upgrade step by step to avoid having to much > issues to solve at once. > > So far, I've made a pull request ([2]) that you can check for the 4.0.1 > upgrade. > Here are some of the issues that I've encounter during the upgrades: > 3.6.9 to 4.0.1: > * Conflicting dependencies: I had to exclude some dependencies in the pom > file. > * The org.hibernate.Session#connection method removal [3]: I'm either > using the Session#doWork method or the Session#createSQLQuery one. > * The org.hibernate.connection.ConnectionProvider interface has > changed: I had to adapt the DBCPConnectionProvider class that we have, > mostly to keep backward compatibility, using C3P0ConnectionProvider as > a model. > * The Session#getSession(EntityMode) method has been removed [4]: I > have no idea how to replace that so we need to test it properly. > * Some attributes in org.hibernate.cfg.Configuration have been > removed: This has mostly an impact on the custom mapping injection > which we need to check. > > 4.0.1 to 4.3.11: > * A change in the hibernate schema update generation makes the update > fail [5]: I had to add a property in the hibernate file but I don't > think this is the best solution. > > 4.3.11 to 5.0.12: > * The org.hibernate.cfg.Configuration has changed again removing many > methods that we were using > > There are some other issues that I've not mentioned or discovered yet. > > So for me the biggest issues are: > * The schema update: I think we should start using the hibernate one > instead of our own (except for migration made with liquibase). > * The custom mapping injection: We will need to rewrite it a bit if we > want to upgrade to 5.x. > > The goal for now is to make the 4.0.1 upgrade work. > > Please let me know what you think or if you have any questions. > > Thanks, > Adel > > [1] > https://jira.xwiki.org/browse/XWIKI-8286?focusedCommentId=96486l#comment-96486 > [2] https://github.com/xwiki/xwiki-platform/pull/1012 > [3] https://hibernate.atlassian.net/browse/HHH-2603 > [4] https://hibernate.atlassian.net/browse/HHH-6330 > [5] https://hibernate.atlassian.net/browse/HHH-8162
signature.asc
Description: OpenPGP digital signature

