Hi!

Good job starting the discussion.
Based on your arguments I also see EclipseLink as the best solution.
I also found one more argument for using EclipseLink - it supports
multi-tenancy:
https://www.eclipse.org/eclipselink/documentation/2.7/solutions/multitenancy.htm#CHDBJCJA

Juhan

Kontakt Ebenezer Graham (<[email protected]>) kirjutas kuupƤeval
E, 1. juuli 2019 kell 07:09:

> Hello Devs,
>
> I have started this thread to discuss the JPA implementation to adopt as
> we work towards making Fineract CN Apache compliant as well as to ensure
> that we are all aligned as a community.
>
> I am currently working on the migration to OpenJPA as my GSoC project.
> However, a number of red flags as well and requests from other community
> members has made it critical to start this thread.
>
> As most of you know, we can't use Hibernate as it's not compliant
> therefore, it's essential that we migrate to an equally good ORM.
>
> *Our options:*
> 1. EclipseLink - EPL 1.0 & BSD
> 2. OpenJPA - Apache 2.0
> 3. DataNucleus - Apache 2.0
>
> Not recommended
> 4. iBatic - Apache 2.0 (still functional but retired
> https://ibatis.apache.org/)
> 5. TopLink - CDDL (category B license, and simply extend EclipseLink)
>
> I used the following criteria in the following order of priority.
> 1. License
> 2. Implementation's performance with respect to PostgreSQL
> 3. Support in Spring as well as ORM Documentation
> 4. Project Maturity
>
> Right off the bat, I suggest the adoption of EclipseLink
> <https://wiki.eclipse.org/EclipseLink> based on new insights discovered,
> re-evaluation of our options, and compatibility issues discovered whiles
> migrating to OpenJPA.
>
> *Why EclipseLink?  *
> According to JPA Performance benchmark -
> http://www.jpab.org/All/All/All.html EclipseLink is the Most Efficient
> ORM (amongst our valid options) when persisting to PostgreSQL and even
> outperforming Hibernate.
>
> Performance Summary (with respect to Postgres)
> EclipseLink - 10.5
> Hibernate -  9.1
> OpenJPA - 6.5
> DataNucleus - 6.0
>
> *Issues with OpenJPA.*
> 1. Spring dropped support back in 2017 and requests to resume support was
> declined earlier this year
> https://github.com/spring-projects/spring-framework/issues/20584. There
> is no guarantee when it will be back in newer versions of Spring.  Spring 5
> for instance no longer includes the OpenJpaVendorAdaptor. Therefore, future
> upgrade of Fineract CN will become an issue.
>
> 2. OpenJPA has been lagging behind - the stable version for spring
> supports up to JDK 1.6 (although v3.0.0+ is working to resolve this issue).
>
> 3. Bugs and compatibility issues with other libraries. I have first-hand
> experience with it and it's not pleasant.
>
> *Why not DataNucleus?*
> It is not supported in Spring 4.x and its implementation will require us
> to completely heavily refactor the JPA Layer in Fineract CN on top of that,
> it's the slowest.
>
> Looking forward to your recommendations and your own evaluations.
> --
>
> *Regards*
>

Reply via email to