You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by James Dailey <ja...@gmail.com> on 2019/11/19 16:32:02 UTC

Building Fineract-CN

Devs

@Vishwas Babu <vi...@gmail.com>

I'm going through the instructions for building the fineract-CN project
locally.
https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN

I'd like to get your feedback and then I'll make some changes.

I think first thing I note is that the versions of pre-requisite software
are not specified, and given that I'm starting with a clean install I'm
using only the latest.  I did remember to use java1.8.  In fact I came
across a cool tool called 'jenv' for installing and using different
versions of java locally or globally (hides the complexity a bit).

Anyway, I have installed:

postgres (PostgreSQL) 11.5


java version "1.8.0_231"

Java(TM) SE Runtime Environment (build 1.8.0_231-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)


Gradle 5.6.4


on Mac OS Catalina 10.15.1


npm-6.11.3

node-v12.12.0


--

Regarding instructions:

When I get to step 3, and choice of persistence  Option A or Option B, I
think that these two paths should be more sequenced or more clearly
separated.


In particular, it might be good to highlight the lightweight and
non-persistence path as a first step, so that people coming to the project
for the first time can get to something rapidly and then move onto the more
involved setup.   i.e. to get to this command:


java -jar -Ddemoserver.provision=true -Ddemoserver.lite=true
demo-server-0.1.0-BUILD-SNAPSHOT.jar


So, first time through A to validate (skip if you've already done it or
have an understanding), and that way we can move the Postgres requirement
to that section.


Also, to define what .lite actually means, I think it merely loads the
customer micro service on top of the basic microservices.

Confirm?


Regarding angular dependencies. There is a note that when launching 'NPM
run dev' that there might be missing dependencies.  I think that should be
made more clear, as in under what circumstances... its a vague comment.


--

I am uncertain, given the above where or why my build is failing.


I detect this error in Option B after creation of the last microservice.

*tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE*

* bind => [2019-11-19 02:44:33.606]*

*ERROR:  relation "khepri_beats" does not exist at character 103*

*STATEMENT:  SELECT id, alignment_hour, application_identifier,
beat_identifier, next_beat, tenant_identifier FROM khepri_beats WHERE
(next_beat < $1) FOR UPDATE*

*[EL Fine]: sql: 2019-11-19
02:44:33.838--ClientSession(1246845483)--Thread(Thread[pool-8-thread-1,5,main])--SELECT
1*

*ERROR:  current transaction is aborted, commands ignored until end of
transaction block*

*STATEMENT:  SELECT 1*

*[EL Warning]: 2019-11-19
02:44:33.839--UnitOfWork(1315887033)--Thread(Thread[pool-8-thread-1,5,main])--Local
Exception Stack: *

*Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.6.4.v20160829-44060b6):
org.eclipse.persistence.exceptions.DatabaseException*

*Internal Exception: org.postgresql.util.PSQLException: ERROR: relation
"khepri_beats" does not exist*

*  Position: 103*

*Error Code: 0*



and practically the same error on Option A. This makes me suspect that I've
got a PostgreSQL issue.


Also, I think these instructions should be related to the dockerized
version to explain when one would want to use one or the other.


Thoughts?



@jdailey <jd...@mifos.org>

Re: Building Fineract-CN

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

It's a good initiative. I agree build instructions need to be refactored
and turned into easier to follow.
I have always fired Postgres, Cassandra, ActiveMQ and Eureka from Docker as
I find it much easier
(cd fineract-cn-docker-compose/external-tools followed by docker-compose up)
Ideally this option should also be added to the build instructions.

>  define what .lite actually means, I think it merely loads the
customer micro service on top of the basic microservices.

Confirm?


Lite mode is documented here:
https://github.com/apache/fineract-cn-demo-server#demoserverlite-truefalse

After reading this block I remembered that I refactored this part
(introduced more modes to make it even more confuzing).
I found now that my pull request is still up and has never been merged:
https://github.com/apache/fineract-cn-demo-server/pull/33/files
I think it would be worth to take this in as it simplifies a bit.

> ERROR:  relation "khepri_beats" does not exist at character 103

This is normal and the error message will go away once you provision rhythm
(step 02.02 in Postman scripts).
I once tried to add a better explanation for the error message:
https://github.com/apache/fineract-cn-rhythm/pull/15/files

Kind regards
Juhan


Kontakt James Dailey (<ja...@gmail.com>) kirjutas kuupƤeval T, 19.
november 2019 kell 18:32:

> Devs
>
> @Vishwas Babu <vi...@gmail.com>
>
> I'm going through the instructions for building the fineract-CN project
> locally.
>
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
>
> I'd like to get your feedback and then I'll make some changes.
>
> I think first thing I note is that the versions of pre-requisite software
> are not specified, and given that I'm starting with a clean install I'm
> using only the latest.  I did remember to use java1.8.  In fact I came
> across a cool tool called 'jenv' for installing and using different
> versions of java locally or globally (hides the complexity a bit).
>
> Anyway, I have installed:
>
> postgres (PostgreSQL) 11.5
>
>
> java version "1.8.0_231"
>
> Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
>
> Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
>
>
> Gradle 5.6.4
>
>
> on Mac OS Catalina 10.15.1
>
>
> npm-6.11.3
>
> node-v12.12.0
>
>
> --
>
> Regarding instructions:
>
> When I get to step 3, and choice of persistence  Option A or Option B, I
> think that these two paths should be more sequenced or more clearly
> separated.
>
>
> In particular, it might be good to highlight the lightweight and
> non-persistence path as a first step, so that people coming to the project
> for the first time can get to something rapidly and then move onto the more
> involved setup.   i.e. to get to this command:
>
>
> java -jar -Ddemoserver.provision=true -Ddemoserver.lite=true
> demo-server-0.1.0-BUILD-SNAPSHOT.jar
>
>
> So, first time through A to validate (skip if you've already done it or
> have an understanding), and that way we can move the Postgres requirement
> to that section.
>
>
> Also, to define what .lite actually means, I think it merely loads the
> customer micro service on top of the basic microservices.
>
> Confirm?
>
>
> Regarding angular dependencies. There is a note that when launching 'NPM
> run dev' that there might be missing dependencies.  I think that should be
> made more clear, as in under what circumstances... its a vague comment.
>
>
> --
>
> I am uncertain, given the above where or why my build is failing.
>
>
> I detect this error in Option B after creation of the last microservice.
>
> *tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE*
>
> * bind => [2019-11-19 02:44:33.606]*
>
> *ERROR:  relation "khepri_beats" does not exist at character 103*
>
> *STATEMENT:  SELECT id, alignment_hour, application_identifier,
> beat_identifier, next_beat, tenant_identifier FROM khepri_beats WHERE
> (next_beat < $1) FOR UPDATE*
>
> *[EL Fine]: sql: 2019-11-19
> 02:44:33.838--ClientSession(1246845483)--Thread(Thread[pool-8-thread-1,5,main])--SELECT
> 1*
>
> *ERROR:  current transaction is aborted, commands ignored until end of
> transaction block*
>
> *STATEMENT:  SELECT 1*
>
> *[EL Warning]: 2019-11-19
> 02:44:33.839--UnitOfWork(1315887033)--Thread(Thread[pool-8-thread-1,5,main])--Local
> Exception Stack: *
>
> *Exception [EclipseLink-4002] (Eclipse Persistence Services -
> 2.6.4.v20160829-44060b6):
> org.eclipse.persistence.exceptions.DatabaseException*
>
> *Internal Exception: org.postgresql.util.PSQLException: ERROR: relation
> "khepri_beats" does not exist*
>
> *  Position: 103*
>
> *Error Code: 0*
>
>
>
> and practically the same error on Option A. This makes me suspect that
> I've got a PostgreSQL issue.
>
>
> Also, I think these instructions should be related to the dockerized
> version to explain when one would want to use one or the other.
>
>
> Thoughts?
>
>
>
> @jdailey <jd...@mifos.org>
>