You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Juhan Aasaru <aa...@gmail.com> on 2020/01/22 12:53:58 UTC

Fineract-CN update to Spring Boot 2

Hi everyone!

I created a new thread for Spring Boot 2 update in Fineract-Cn as it is a
large topic on its own.
I understand Rohit would be willing to work on this as in the fork of his
team they have already managed to update the versions to Spring Boot 2.2
and to Spring 5.

I try to help along the way and hopefully this thread will be a good
reference for the future how to get such big changes done without affecting
the current version until everything is completed and tested.

The issue is already there in Jira:
https://issues.apache.org/jira/browse/FINCN-172 (Apache projects don't use
Github issues). Rohit, please create a user to that system and assign the
issue to yourself.

I think the first goal would be to get fineract-cn-identity running on new
Spring Boot version 2.2 since Identity doesn't depend on any other fineract
project (it only depends on libraries). Once we have accomplished that then
getting rest of the services moved is mostly just a lot of copy-paste work.

For this we have to include in the spring boot update the list of Fineract
libraries Identity depends on. These are (taken from
fineract-cn-identity/shared.gradle):

        frameworkcrypto    : '0.1.0-BUILD-SNAPSHOT',
        frameworkanubis    : '0.1.0-BUILD-SNAPSHOT',
        frameworkapi       : '0.1.0-BUILD-SNAPSHOT',
        frameworktest      : '0.1.0-BUILD-SNAPSHOT',
        frameworklang      : '0.1.0-BUILD-SNAPSHOT',
        frameworkasync     : '0.1.0-BUILD-SNAPSHOT',
        frameworkcassandra : '0.1.0-BUILD-SNAPSHOT',
        frameworkcommand   : '0.1.0-BUILD-SNAPSHOT',

But if we just update those libraries then it would break everything that
is currently working. For this I created branch "spring_boot_2" for each of
the libraries and declared their version to be "spring_boot_2-SNAPSHOT".
For example:
https://github.com/apache/fineract-cn-lang/blob/spring_boot_2/build.gradle#L51

So if we push something to branch "spring_boot_2" in
apache/fineract-cn-lang then the artifact that is built and deployed by
travis-ch will have verison number "spring_boot_2-SNAPSHOT". And
0.1.0-BUILD-SNAPSHOT remains unaffected.

So I did that and now you see that the fineract-cn-identity in branch
"spring_boot_2" depends on these versions:
https://github.com/apache/fineract-cn-identity/blob/spring_boot_2/shared.gradle#L19

Rohit. As step #2 please make sure you get Idenity woring with Spring Boot
2 and create pull requests to all of the needed libraries Identity
depends + a pull request to Identity itself and please make your pull
requests point branch "spring_boot_2" (and not "develop"):

In order not to send your other changes, please frirst create clean
branches to all of your local forks (or even better - create new forks
under your personal github name for this).

I know creating all these pull requests is pain (and also they depend on
each other so some of the pull request builds won't pass at first - ignore
that). There is a cure for that but please bare with me on this one and
once this is luckily done we might find a way where you can push code
directly.

Kind regards
Juhan

Re: Fineract-CN update to Spring Boot 2

Posted by Juhan Aasaru <aa...@gmail.com>.
Hi!

Excellent.
I have managed to get Cassandra working (on Spring Boot) with this
configuration:

            [group: 'com.datastax.cassandra', name:
'cassandra-driver-core', version: '3.1.2'],
            [group: 'com.datastax.cassandra', name:
'cassandra-driver-mapping', version: '3.0.1'],
            [group: 'com.datastax.cassandra', name:
'cassandra-driver-extras', version: '3.0.1']

So core is updated to 3.1.2 and others remain in 3.0.1.
Probably it is not the best fix out there - it just works for me.
Also I don't know if it works with Spring Boot 2.x.

Please create a new issue to issues.apache.org to project Fineract-CN about
this Cassandra driver problem.
This way we won't loose it and can start working on it after this one.

Juhan


Kontakt Rohit Verma (<ro...@jupiter.money>) kirjutas kuupƤeval K, 22.
jaanuar 2020 kell 15:48:

> Awesome, thanks!
>
> I will send pull request for all the libraries.
> I did face some issues with Cassandra driver, as i have yet to understand
> the new driver syntax.
>
> For now i will send pr with old driver only. This seems an immediate next
> issue.
>
>
> Regards
> Rohit
>
> On Wed, 22 Jan, 2020, 6:24 pm Juhan Aasaru, <aa...@gmail.com> wrote:
>
>> Hi everyone!
>>
>> I created a new thread for Spring Boot 2 update in Fineract-Cn as it is a
>> large topic on its own.
>> I understand Rohit would be willing to work on this as in the fork of his
>> team they have already managed to update the versions to Spring Boot 2.2
>> and to Spring 5.
>>
>> I try to help along the way and hopefully this thread will be a good
>> reference for the future how to get such big changes done without affecting
>> the current version until everything is completed and tested.
>>
>> The issue is already there in Jira:
>> https://issues.apache.org/jira/browse/FINCN-172 (Apache projects don't
>> use Github issues). Rohit, please create a user to that system and assign
>> the issue to yourself.
>>
>> I think the first goal would be to get fineract-cn-identity running on
>> new Spring Boot version 2.2 since Identity doesn't depend on any other
>> fineract project (it only depends on libraries). Once we have accomplished
>> that then getting rest of the services moved is mostly just a lot of
>> copy-paste work.
>>
>> For this we have to include in the spring boot update the list of
>> Fineract libraries Identity depends on. These are (taken from
>> fineract-cn-identity/shared.gradle):
>>
>>         frameworkcrypto    : '0.1.0-BUILD-SNAPSHOT',
>>         frameworkanubis    : '0.1.0-BUILD-SNAPSHOT',
>>         frameworkapi       : '0.1.0-BUILD-SNAPSHOT',
>>         frameworktest      : '0.1.0-BUILD-SNAPSHOT',
>>         frameworklang      : '0.1.0-BUILD-SNAPSHOT',
>>         frameworkasync     : '0.1.0-BUILD-SNAPSHOT',
>>         frameworkcassandra : '0.1.0-BUILD-SNAPSHOT',
>>         frameworkcommand   : '0.1.0-BUILD-SNAPSHOT',
>>
>> But if we just update those libraries then it would break everything that
>> is currently working. For this I created branch "spring_boot_2" for each of
>> the libraries and declared their version to be "spring_boot_2-SNAPSHOT".
>> For example:
>> https://github.com/apache/fineract-cn-lang/blob/spring_boot_2/build.gradle#L51
>>
>> So if we push something to branch "spring_boot_2" in
>> apache/fineract-cn-lang then the artifact that is built and deployed by
>> travis-ch will have verison number "spring_boot_2-SNAPSHOT". And
>> 0.1.0-BUILD-SNAPSHOT remains unaffected.
>>
>> So I did that and now you see that the fineract-cn-identity in branch
>> "spring_boot_2" depends on these versions:
>> https://github.com/apache/fineract-cn-identity/blob/spring_boot_2/shared.gradle#L19
>>
>> Rohit. As step #2 please make sure you get Idenity woring with Spring
>> Boot 2 and create pull requests to all of the needed libraries Identity
>> depends + a pull request to Identity itself and please make your pull
>> requests point branch "spring_boot_2" (and not "develop"):
>>
>> In order not to send your other changes, please frirst create clean
>> branches to all of your local forks (or even better - create new forks
>> under your personal github name for this).
>>
>> I know creating all these pull requests is pain (and also they depend on
>> each other so some of the pull request builds won't pass at first - ignore
>> that). There is a cure for that but please bare with me on this one and
>> once this is luckily done we might find a way where you can push code
>> directly.
>>
>> Kind regards
>> Juhan
>>
>>

Re: Fineract-CN update to Spring Boot 2

Posted by Rohit Verma <ro...@jupiter.money.INVALID>.
Awesome, thanks!

I will send pull request for all the libraries.
I did face some issues with Cassandra driver, as i have yet to understand
the new driver syntax.

For now i will send pr with old driver only. This seems an immediate next
issue.


Regards
Rohit

On Wed, 22 Jan, 2020, 6:24 pm Juhan Aasaru, <aa...@gmail.com> wrote:

> Hi everyone!
>
> I created a new thread for Spring Boot 2 update in Fineract-Cn as it is a
> large topic on its own.
> I understand Rohit would be willing to work on this as in the fork of his
> team they have already managed to update the versions to Spring Boot 2.2
> and to Spring 5.
>
> I try to help along the way and hopefully this thread will be a good
> reference for the future how to get such big changes done without affecting
> the current version until everything is completed and tested.
>
> The issue is already there in Jira:
> https://issues.apache.org/jira/browse/FINCN-172 (Apache projects don't
> use Github issues). Rohit, please create a user to that system and assign
> the issue to yourself.
>
> I think the first goal would be to get fineract-cn-identity running on new
> Spring Boot version 2.2 since Identity doesn't depend on any other fineract
> project (it only depends on libraries). Once we have accomplished that then
> getting rest of the services moved is mostly just a lot of copy-paste work.
>
> For this we have to include in the spring boot update the list of Fineract
> libraries Identity depends on. These are (taken from
> fineract-cn-identity/shared.gradle):
>
>         frameworkcrypto    : '0.1.0-BUILD-SNAPSHOT',
>         frameworkanubis    : '0.1.0-BUILD-SNAPSHOT',
>         frameworkapi       : '0.1.0-BUILD-SNAPSHOT',
>         frameworktest      : '0.1.0-BUILD-SNAPSHOT',
>         frameworklang      : '0.1.0-BUILD-SNAPSHOT',
>         frameworkasync     : '0.1.0-BUILD-SNAPSHOT',
>         frameworkcassandra : '0.1.0-BUILD-SNAPSHOT',
>         frameworkcommand   : '0.1.0-BUILD-SNAPSHOT',
>
> But if we just update those libraries then it would break everything that
> is currently working. For this I created branch "spring_boot_2" for each of
> the libraries and declared their version to be "spring_boot_2-SNAPSHOT".
> For example:
> https://github.com/apache/fineract-cn-lang/blob/spring_boot_2/build.gradle#L51
>
> So if we push something to branch "spring_boot_2" in
> apache/fineract-cn-lang then the artifact that is built and deployed by
> travis-ch will have verison number "spring_boot_2-SNAPSHOT". And
> 0.1.0-BUILD-SNAPSHOT remains unaffected.
>
> So I did that and now you see that the fineract-cn-identity in branch
> "spring_boot_2" depends on these versions:
> https://github.com/apache/fineract-cn-identity/blob/spring_boot_2/shared.gradle#L19
>
> Rohit. As step #2 please make sure you get Idenity woring with Spring Boot
> 2 and create pull requests to all of the needed libraries Identity
> depends + a pull request to Identity itself and please make your pull
> requests point branch "spring_boot_2" (and not "develop"):
>
> In order not to send your other changes, please frirst create clean
> branches to all of your local forks (or even better - create new forks
> under your personal github name for this).
>
> I know creating all these pull requests is pain (and also they depend on
> each other so some of the pull request builds won't pass at first - ignore
> that). There is a cure for that but please bare with me on this one and
> once this is luckily done we might find a way where you can push code
> directly.
>
> Kind regards
> Juhan
>
>