Hello devs,

Just thought I should remind the community about why these migrations are
necessary.

The rationale behind migrating the ORM from Hibernate is that Hibernate
ORM's license[1] falls under the ASF's Category X[1].

Not complying to the ASF's licensing requirements is a sure-fire method to
never getting an official release for Fineract CN.

Does anyone think there's another way around these ?

Cheers,
Isaac Kamga.

[1] https://hibernate.org/community/license/
[2] https://www.apache.org/legal/resolved.html

On Tue, Jul 9, 2019 at 11:08 PM Victor Manuel Romero Rodriguez <
[email protected]> wrote:

> Hello
>
> I will give my own opinions, by the way I don't work for any company
> mentioned here :)
>
> For short:
>
> *I will keep using using Hibernate because it has advantages over the
> others ORM listed. *
>
>
> TL/TR
>
> The value of the core are the transactions recorded with confidence in a
> Structured Database, the reliability of the Database is important,
> customers can have their balances, their loans, investments, charges. The
> audit guys will be happy to find in our journals the expected information.
> The authorities will receive the reports that extract the information.
>
> Example:
>
> I got the source code of Fineract/Fineract-CN/Mifos and for some reason
> the DataTable is not enough so then I need to modify the code... but I
> don't not anything about the ORM technology,wait a minute I have some bucks
> to pay a course at:
>
> Udemy (search results)
>
> 252 results for hibernate
> 0 results for EclipseLink
> 0 results for OpenJPA
> 0 results for DataNucleus
>
> Ok, well now it is time to find some references in Google search engine
> and learn about the ORM technology that Fineract/Fineract-CN/Mifos X uses
>
> Search results
>
> 2,350,000 hibernate
> 138,000 OpenJPA
> 74,900 EclipseLink
> 15,400 DataNucleus
>
> Ok let's try to find the source code, have some references, samples (ok
> just to learn, not to reuse because we can keep that in mind and later
> affect the Open Source).
>
> Github (search results)
>
> 44,123 repositories hibernate
> 478 repositories Eclipselink
> 108 repositories OpenJPA
> 142 repositories datanucleus
>
> After that I have touched the code and something goes wrong... yes, the
> dev list of the ORM Technology is the first option, but what about to ask
> to everybody at
>
> StackOverflow (search results)
>
> 78,304 Hibernate
> 500 datanucleus
> 500 openjpa (coincidence?)
> 500 eclipselink (OK NO, StackOverflow has something strange in its search
> engine)
>
> I consider that if the ORM technology is a MUST to be migrated, the ORM
> team must be invited, involved, exchange experiences to feel the same pain
> and help because it will benefit both projects.
>
> Regards
>
> Victor
> On 7/1/19 1:47 a. m., Awasum Yannick wrote:
>
> Hi Graham,
>
> +1 EclipseLink as its supported by spring 4.x and latest spring versions
> and compatible with Apache license. Our upgrade to Spring 5.x or 6.x will
> be easier.
>
> We dont want to build and maintain our own integration of OpenJPA with
> Spring 5 or 6 in the future.
>
> On Mon, Jul 1, 2019 at 7:40 AM Juhan Aasaru <[email protected]> wrote:
>
>> 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