Re: Looking for Full-time Fineract / Mifos Developers

2022-05-04 Thread Juhan Aasaru
Be warned that the email has several signs of being a scam.

1. it builds an impression that the company is a real bank (the last link
in the email) but actually it just has a similar name
2. company has no website
3. President/CEO doing recruiting
4. if you google the person and the bank you will end up on this page:
https://www.newschannel10.com/story/36487724/fdic-posts-ruling-on-former-ceo-of-herring-bank-for-misuse-of-funds/

Juhan


Kontakt Campbell Burgess () kirjutas kuupäeval T,
3. mai 2022 kell 21:21:

> We are looking for full-time Fineract/Mifos developer(s).
>
> We have a lead position open as well as a few junior positions.
>
> If you have a deep understanding of Fineract and Mifos, and would like to
> pursue a permanent telecommuting position, please reach out to me.
>
> Compensation will be commensurate with experience.
> --
>
> Herring BANCORP ®
>
>
> *C. Campbell Burgess *President/CEO
> Office: (806) 373-3921 | Direct: (806) 242-3704
>
> c...@herringbancorp.com
>
>
> *Herring Bancorp*
> 2201 Civic Circle, Suite 1000
> Amarillo, TX 79109
>
> www.herringbank.com
>
> CONFIDENTIALITY NOTE: This e-mail is intended only for the use of the
> individual or entity to which it is addressed and may contain information
> that is privileged, confidential and exempt from disclosure under
> applicable law. If the reader of this e-mail message is not the intended
> recipient, or the employee or agent responsible for delivery of the message
> to the intended recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is prohibited. If you have
> received this e-mail in error, please notify us immediately by telephone at
> (303) 565-7001 and also indicate the sender's name. Thank you.
>
>
>
>
>
>
>
>


Re: Fineract CN - Branches (Spring2)

2021-08-10 Thread Juhan Aasaru
Hi!

Nasser was working on bringing all the repositories to Spring Boot 2 but
since it was quite a lot of work then I'm afraid he didn't quite manage to
finish with it.

The idea behind the separate spring_boot_2 branch was the following:
* Since it was a lot of work it couldn't be all done quickly in the
development branch
* As the repositories depend on each other the idea was to finish lifting
to Spring Boot 2 (and upgrade Java) with all of the repositories
on a separate branch "spring_boot_2" and then merge that work back to the
"develop" branch at the same time in all of the repositories.
Anyway - it doesn't matter any more - feel free to merge all
"spring_boot_2" branches to "develop" branch.

Regards
Juhan

Kontakt VICTOR MANUEL ROMERO RODRIGUEZ ()
kirjutas kuupäeval T, 10. august 2021 kell 00:06:

> Hello Juhan Aasaru,
>
> Quick question, I am building the Fineract CN for a GSoC track that we are
> helping and I can notice that there are a Spring Boot 2.X branch in the
> following repositories:
>
> 01.apache-fineract-cn-lang
> 02.apache-fineract-cn-postgresql
> 03.apache-fineract-cn-api
> 04.apache-fineract-cn-cassandra
> 05.apache-fineract-cn-test
> 06.apache-fineract-cn-crypto
> 07.apache-fineract-cn-async
> 08.apache-fineract-cn-command
> 09.apache-fineract-cn-anubis
> 10.apache-fineract-cn-identity
> 11.apache-fineract-cn-permitted-feign-client
> 12.apache-fineract-cn-provisioner
>
> May I know why it has not been merged yet? (By the way I have also that
> there are some pending task in the provisioner to make it fully usable
> using the Spring Boot 2.x
>
> Regards
>
> Victor
>


New committer: Percy Enoabane

2020-10-07 Thread Juhan Aasaru
Hello Fineract community!

The Project Management Committee (PMC) for Apache Fineract has invited
Percy Ayuk Ashu Enoabane to become a committer and we are pleased
to announce that he has accepted.

Since joining us in December 2019 Percy has fixed bugs, improved the
codebase of Fineract 1.x and already authored 50+ pull requests. Over the
summer as part of his GSoC project he has added code quality checks by
enforcing static analysis tools and migrating us away from many deprecated
dependencies.

Committership eases contributions by leapfrogging the patch submission
process. We encourage contributors to aspire for better productivity
through such access.

List of all Fineract committers (currently 41) is visible here:
https://projects.apache.org/committee.html?fineract

Join me in welcoming Percy Enoabane as an Apache Fineract committer.

On behalf of Fineract PMC,
Regards,
Juhan Aasaru


Re: Fineract CN Improvement Proposal

2020-09-27 Thread Juhan Aasaru
Hi!

Fineract-CN hasn't managed to get a community that would actively push it
forward.
It could happen in the future or it could never happen.

Anyway - rather than changing CN to a radically different direction I would
rather advise
to gather interested parties together and start from a clean perspective
and name it
something else - Fineract NS (New Start) or whatever.
This doesn't mean it couldn't borrow code from Fineract-CN if needed.
Also we have the ability to spin up new apache/fineract-* Github
repositories whenever needed.

The new start could only work if there is critical mass of interested
parties on board from
the start and they work together. If there is only one company outsourcing
its work
(without others having much say what technologies to use etc) then it won't
be the apache
way to build new software and thus not a very sustainable model.

Juhan


Kontakt James Dailey () kirjutas kuupäeval L, 26.
september 2020 kell 19:30:

> Thanks Saransh for bringing this conversation forward and on-list.  I
> believe we need more ideas about fineract-CN, and I agree that a key
> 'story' is accessibility of the code to developers and avoiding the
> monolithic code base trap.
>
> I'll note that recently fineract 1.4 was released, a major improvement.
> That needed our strong focus and is a community success.
>
>  fineract-CN has not yet had the same level of focus, but I believe that
> it should.
>
> It's important that we also have those with fineract CN in production to
> help drive the roadmap. There are several and some of those folks have
> proposed new directions as well.  So, this is an active discussion.
>
> Previously we discussed on list the importance of the 'minimal set' of
> microservices.  Can you say whether you have the same list or a smaller
> set? Or larger set as the required microservices for a 'release'?
>
> Or how should we think about composability?
>
> In terms of your re-architecting ideas, I look forward to learning more.
>
> @jdailey
>
> On Fri, Sep 25, 2020, 3:44 AM Saransh Sharma 
> wrote:
>
>> Hey folks out there , this email is intended for Fineract CN improvement,
>> before setting the ground i would like to clear up a few things ; one this
>> is not a separate project , this concerns overall change from ground up and
>> possible variation of the existing project out there.
>>
>> Possible scenario
>>
>> We would like to propose fundamental changes to bring forward
>> contribution that has been (if some of us are still wanting to contribute
>> please come forward)
>>
>> Another possible design issue we could not figure out anything at first
>> glance.
>>
>> Developer experience, we would like to contribute back to the community
>> the finest development exp.
>>
>> Architectural change to fit close to the nature of Microservices
>>
>> I have created a Jira ticket  let me know if anyone wish to discuss
>> this and get it through this
>>
>> Possible Solution
>>
>> To get contribution back we need automation at the templating side (We
>> would like to share our automated generator experience so far)
>>
>> Another important thing is the architecture needs to suit the needs of
>> the partner and developers to quickly integrate with any services.
>>
>> Grouping these services from the partners together and making them
>> available with existing solutions .
>>
>> Some Blockers
>> Need to evolve from the idea of monolithic to to true Microservices
>> approach
>>
>> Reference
>> https://issues.apache.org/jira/browse/FINCN-239
>> --
>> Thanks and regards,
>>
>> Saransh Sharma
>> Research Partner
>>
>> This mail is governed by Muellners®  IT policy.
>> The information contained in this e-mail and any accompanying documents
>> may contain information that is confidential or otherwise protected from
>> disclosure. If you are not the intended recipient of this message, or if
>> this message has been addressed to you in error, please immediately alert
>> the sender by reply e-mail and then delete this message, including any
>> attachments. Any dissemination, distribution or other use of the contents
>> of this message by anyone other than the intended recipient is strictly
>> prohibited. All messages sent to and from this e-mail address may be
>> monitored as permitted by applicable law and regulations to ensure
>> compliance with our internal policies and to protect our business. E-mails
>> are not secure and cannot be guaranteed to be error free as they can be
>> intercepted, amended, lost or destroyed, or contain viruses. You are deemed
>> to have accepted these risks if you communicate with us by e-mail.
>>
>


Re: Auto config at Provisioner CN

2020-06-29 Thread Juhan Aasaru
Hi!

I quite don't understand what you mean.

Is your question about making each micro service only have its own database
that is not shared with other micro services? In my opinion this is doable
and worth further discussion.

Or do you have a need to use other database vendors besides Postgres. If
this is the case then my answer is that we have limited resources and if we
would support different database vendors it would consume too much of the
limited development resources we have at hand.

Kind regards
Juhan

Kontakt Saransh Sharma () kirjutas kuupäeval L, 27.
juuni 2020 kell 19:54:

> Hey Juhan , if you are reading this email.. I am looking to understand how
> to make CN services more agnostic by providing more services config on
> hand, as I see right now it's configured to have only postgres.
>
> So essentially it's tied to postgres then (are we suggesting that we only
> use postgres).
>
> This can become problematic actually why ? because we cannot add more DB
> support to standalone isolated env.
>
> We are trying to have isolated services with individual service support of
> DB and externally services connected to each service. This way we could add
> independent services made out of any language and any DB.
>
> Let me know your thoughts.
>
>
> --
> Thanks and regards,
>
> Saransh Sharma
> Research Partner
>
> This mail is governed by Muellners®  IT policy.
> The information contained in this e-mail and any accompanying documents
> may contain information that is confidential or otherwise protected from
> disclosure. If you are not the intended recipient of this message, or if
> this message has been addressed to you in error, please immediately alert
> the sender by reply e-mail and then delete this message, including any
> attachments. Any dissemination, distribution or other use of the contents
> of this message by anyone other than the intended recipient is strictly
> prohibited. All messages sent to and from this e-mail address may be
> monitored as permitted by applicable law and regulations to ensure
> compliance with our internal policies and to protect our business. E-mails
> are not secure and cannot be guaranteed to be error free as they can be
> intercepted, amended, lost or destroyed, or contain viruses. You are deemed
> to have accepted these risks if you communicate with us by e-mail.
>


Re: Missing API's?

2020-06-05 Thread Juhan Aasaru
Hi!

I don't know why not all micro services are documented this way.

My recommendation is to directly read code (controllers of each micro
service),
this is the most up to date documentation.
Also playing around with Postman scripts (and creating your own) gives
one a good understanding of what the system is about and what is the
sequence the API calls need to be executed.

Postman scripts can be found here:
https://github.com/apache/fineract-cn-docker-compose#provisioning-the-micro-services-using-postman
(these scripts can be used with or without running dockerized micro
services )

Regards
Juhan Aasaru


Kontakt Aad Nales | Almende () kirjutas kuupäeval R, 5.
juuni 2020 kell 09:43:

> Hi All,
>
> Currently i am trying to figure out what is in Fineract CN and what is not
> for a project that we are starting. I have started with going through the
> online documentation and i found that the list with all the project
> structure describes a number of API's that currently seem to be missing
> from the API reference.
>
> project structure:
> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Project+Structure
>
> reference:
> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+API+Documentation
>
> The ones that seem to be missing are:
>
> Provisioner
> Rhythm
> Portfolio
> Cheques and
> Notification
>
> Is there any reason for this?
>
> TIA,
> Aad Nales
>
> --
>
> ---
>
> Website <http://www.almende.org>
> E-mail 
> Aad Nales
> Partner
>
> Almende B.V.
> Groot Handelsgebouw
> Stationsplein 45  | 3011 AK Rotterdam
>
> +31 10 404 94 44
> +31 6 54207340 (mob)
>
>
>


[ANNOUNCE] New committer: Yemdjih Kaze Nasser

2020-05-11 Thread Juhan Aasaru
The Project Management Committee (PMC) for Apache Fineract
has invited Yemdjih Kaze Nasser to become a committer and we are pleased
to announce that he has accepted.

He has been involved in the community for over half a year and
has submitted several significant pieces of work to Fineract 1.x.
He is also leading the development efforts in migrating Fineract-CN to
Spring Boot 2, which would enable upgrading Java version later.
Thank you for that!

Being a committer enables easier contribution to the
project since there is no need to go via the patch
submission process (for example one can create branches and push code
into github.com/apache/fineract* repositories).
This should enable better productivity.

Please join me in welcoming Yemdjih Kaze Nasser as a new Committer on
Fineract.

Regards
Juhan Aasaru
PMC Member, Apache Fineract


Re: Gradle and Spring Upgrade

2020-04-20 Thread Juhan Aasaru
Great work!
I added my feedback to your PR here:
https://github.com/apache/fineract-cn-anubis/pull/11#issuecomment-616339182

Juhan

Kontakt Awasum Yannick () kirjutas kuupäeval P, 19.
aprill 2020 kell 12:59:

> Thanks very much Saransh. Send in your PR so Juhan and others can help
> review. This is a very important contribution to Fineract CN.
>
> On Sun, Apr 19, 2020 at 10:56 AM Saransh Sharma 
> wrote:
>
>> Hello everyone
>>
>> I was able to perform a Spring Upgrade and Gradle Upgrade on
>> fineract-CN-anubis, there were some changes in the codebase also since many
>> things changed from the previous version of the spring and its dependency.
>>
>> I know it might not be the correct path , i wish to have a feedback from
>> Juhan , so this is how i see ,
>>
>> 1. Upgrade Gradle
>> 2. Upgrade Spring Dependency , i have used a plugin
>>  id "com.github.ben-manes.versions" version "0.28.0"
>> 3. This allows me to perform an update without messing up with version
>> numbers.
>> 4. After this obviously some methods and packages will be obsolete or
>> deprecated.
>> 5. So updating those like for an eg:
>>
>> import org.springframework.cloud.netflix.feign.FeignClient;
>> to
>>  import org.springframework.cloud.openfeign.FeignClient;
>>
>> 6. All tests are passing as of now
>>
>> import org.springframework.cloud.netflix.feign.FeignClient;  import
>> org.springframework.cloud.openfeign.FeignClient;
>>
>>
>> https://github.com/apache/fineract-cn-anubis/compare/develop...muellners:develop
>>
>> Let me know, I will send out an PR.
>>
>> So, if this is the right approach then , i will be doing the rest of the
>> fineract-CN libs and services. If anyone wishes to help.
>> let me know
>>
>> --
>>
>> Saransh Sharma
>> *Research Partner*
>> *Muellner Internet Pvt Ltd *
>>
>>
>> --
>>
>> The idea of separation of me and you is amazing.
>>
>> --
>> *Company Website    **Company Linkedin
>> *Company Facebook
>> 
>>
>> This mail is governed by Muellner®  Internet Private Limited's IT policy.
>> The information contained in this e-mail and any accompanying documents
>> may contain information that is confidential or otherwise protected from
>> disclosure. If you are not the intended recipient of this message, or if
>> this message has been addressed to you in error, please immediately alert
>> the sender by reply e-mail and then delete this message, including any
>> attachments. Any dissemination, distribution or other use of the contents
>> of this message by anyone other than the intended recipient is strictly
>> prohibited. All messages sent to and from this e-mail address may be
>> monitored as permitted by applicable law and regulations to ensure
>> compliance with our internal policies and to protect our business. E-mails
>> are not secure and cannot be guaranteed to be error free as they can be
>> intercepted, amended, lost or destroyed, or contain viruses. You are deemed
>> to have accepted these risks if you communicate with us by e-mail.
>>
>


Re: Fineract-CN - ActiveMQ vs Kafka

2020-03-23 Thread Juhan Aasaru
Giorgio,

Storing commands is just one aspect of all the things stored in Cassandra.

I recommend you start the bare minimum of Fineract CN:
https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally

And then connect to Cassandra (I use IntelliJ IDEA for this)
and see the tables inside this database.
Then you see that Cassandra is also used for storing data.

For example it keeps a record of all roles in the system.
This class is used to get / add / change or delete a role:
https://github.com/apache/fineract-cn-identity/blob/develop/service/src/main/java/org/apache/fineract/cn/identity/internal/repository/Roles.java

As you see from the code, this data is kept in Cassandra not in Postgres or
anywhere else.
As a matter of fact - Identity keeps all its data in Cassandra while other
micro services of Fineract CN
keep some persistent data in Postgres and some in Cassandra.

Juhan


Kontakt Giorgio Zoppi () kirjutas kuupäeval P, 22.
märts 2020 kell 16:03:

> Hello Gents,
> following this  statement Cassandra is primarily used for logging commands
> ( see
> https://cwiki.apache.org/confluence/display/FINERACT/CQRS+in+Fineract+CN )
> and journal entries.
> We don't need Cassandra y neither a document/column db. Just Redis (with
> Streams)  is enough.
>
> BR,
> Giorgio
>
>
> El dom., 22 mar. 2020 a las 0:02, Vishwas Babu ()
> escribió:
>
>> Hello Giorgio,
>>
>> >>1. do you think feasible to replace/mantain Kafka support instead
>> ActiveMQ for increasing scalability and ScyllaDB instead Cassandra? For
>> what reason do you use Cassandra? (with those changes i bet you can gain
>> 10% performance on heavy load).
>>
>> Cassandra is primarily used for logging commands ( see
>> https://cwiki.apache.org/confluence/display/FINERACT/CQRS+in+Fineract+CN )
>> and journal entries.
>>
>> +1 for Kafka
>> Tentative +1 for ScyllaDB (considering potential licensing issues with
>> ScyllaDB primarily using AGPL. Drivers, etc seem to use Apache 2.0 though).
>>
>> >> 3. Which is the bare minimum to run / refactor for fineract-cn?
>>
>> Depends on the approach taken for running fineract-cn
>> ->
>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
>>  needs
>> the most resources
>> -> Docker-based approaches need similar / slightly lesser (?) resources.
>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally
>>  has
>> instructions for bringing up the minimal set of services
>> -> For development, manually bringing up the required services from the
>> command line requires the least resources. Instructions at
>> https://cwiki.apache.org/confluence/display/FINERACT/Running+Fineract+CN+Locally+on+Windows
>>
>> Regards,
>> Vishwas
>>
>>
>>
>> On Sat, 21 Mar 2020 at 14:55, Giorgio Zoppi 
>> wrote:
>>
>>> Hello Gents,
>>> I have a couple of questions:
>>> 1. do you think feasible to replace/mantain Kafka support instead
>>> ActiveMQ for increasing scalability and ScyllaDB instead Cassandra? For
>>> what reason do you use Cassandra? (with those changes i bet you can gain
>>> 10% performance on heavy load).
>>> 2. have experience with Gradle 5 and Java 11 compiling fineract-cn?
>>> 3. Which is the bare minimum to run / refactor for fineract-cn?
>>>
>>> BR,
>>> Giorgio
>>>
>>
>
> --
> Life is a chess game - Anonymous.
>


Re: Fineract-CN - ActiveMQ vs Kafka

2020-03-22 Thread Juhan Aasaru
We don't have to be backwards compatible with upgrade to Spring Boot 2 and
Java 11.
We can just do the upgrade.
However we need to keep the system functional and for this we need to keep
our builds (travis-ci) passing.
For this we need to start with upgrading the micro service which doesn't
depend on any other micro service (this is fineract-cn-identity)
and the libraries it depends on (visible here:
https://github.com/apache/fineract-cn-identity/blob/develop/shared.gradle#L22
 )

I have created branch spring_boot_2 to each of the micro service and to
each library.

So basically if you want to upgrade identity to Spring Boot 2 (+ Java 11)
you have to send PR here:
https://github.com/apache/fineract-cn-identity/tree/spring_boot_2
And if you need to update any dependent libraries (anubis for example) you
need to get the PR approved to this branch:
https://github.com/apache/fineract-cn-anubis/tree/spring_boot_2
this is built by travis-ci to a jar and fineract-cn-idneitty depends on
this jar.

Juhan
...


Kontakt Giorgio Zoppi () kirjutas kuupäeval P, 22.
märts 2020 kell 14:10:

>
> Ok,
> the discussion is going to be interesting now:
> 1. We need a broker mechanism that will scale for and reduce the latency.
> We could support both just using a config parameter and let the user decide.
> 2. +1 DynamoDB .
>
> Thanks for the info:
> Different members of the community have upgraded but nobody has bothered
> to give it back to the community. If you want Java 11 you need to first
> upgrade to Spring Boot 2. More info:
> https://issues.apache.org/jira/browse/FINCN-172
> Do you have a repo? Is anyone interested to move to Java 11 and Spring
> Boot 2 officially all fineract-cn (and just that)? Do we have any backward
> compatibility issues?
>
> Best Regards,
> Giorgio
>
>


Re: Fineract-CN - ActiveMQ vs Kafka

2020-03-22 Thread Juhan Aasaru
1. The ideal solution would separate implementation from rest of the code
so different organizations could use different technologies.
I don't see much value in replacing ActiveMQ (as it work out of the box and
requires little maintenance).
I see a huge win if it would be possible to use other alternatives besides
Cassandra.
I personally would use Amazon DynamoDB but different companies have
different technology stacks in-house that they prefer.
So the discussion on the topic should not be "how replace X with Y" but
rather "how could we support alternatives to X".

2. Different members of the community have upgraded but nobody has bothered
to give it back to the community. If you want Java 11 you need to first
upgrade to Spring Boot 2. More info:
https://issues.apache.org/jira/browse/FINCN-172

BR,
Juhan


Kontakt Giorgio Zoppi () kirjutas kuupäeval L, 21.
märts 2020 kell 23:55:

> Hello Gents,
> I have a couple of questions:
> 1. do you think feasible to replace/mantain Kafka support instead ActiveMQ
> for increasing scalability and ScyllaDB instead Cassandra? For what reason
> do you use Cassandra? (with those changes i bet you can gain 10%
> performance on heavy load).
> 2. have experience with Gradle 5 and Java 11 compiling fineract-cn?
> 3. Which is the bare minimum to run / refactor for fineract-cn?
>
> BR,
> Giorgio
>


Re: Swagger doc for fineract-cn

2020-03-16 Thread Juhan Aasaru
Hi everyone!

Fineract-CN has no Swagger.

We have used Postman scripts to document the provisioning process,
these can be found here:
https://github.com/apache/fineract-cn-docker-compose

The advantage of Postman scripts over Swagger is that you often need to run
a lot of steps in a row and the output of some call needs to be used as
input parameter
to some next call. With Swagger you would need a lot of copy pasting around
but
with Postman you can use variables for storing and passing these values
around.

But of course having Swagger would help to identify what API-s exist at
first place.
Currently you have to read the code for that. You can find the
RestControllers of
each micro service from a locations like these:

https://github.com/apache/fineract-cn-identity/tree/develop/service/src/main/java/org/apache/fineract/cn/identity/rest
https://github.com/apache/fineract-cn-accounting/tree/develop/service/src/main/java/org/apache/fineract/cn/accounting/service/rest

Juhan

Kontakt Ed Cable () kirjutas kuupäeval E, 16. märts 2020
kell 07:38:

> Giorgio,
>
> Thanks for bringing this topic on list. I would love to hear from members
> of the community more technically-minded than me as to the ease of creating
> swagger doc formatted API for Fineract CN
>
> @Isaac Kamga  who lead efforts around our previous API
> doc efforts had to use SpringDocs due to the novelty and complexity of our
> microservices. Can others comment on the same?
>
> Our current GSOC idea on this topic,
> https://mifosforge.jira.com/wiki/spaces/RES/pages/1118175247/Google+Summer+of+Code+2020+Ideas#GoogleSummerofCode2020Ideas-LiveFineractCNAPIDocumentationasPartofDeveloperPortal,
>   links to
> the repo that Juhan created to house Isaac's work:
> https://github.com/aasaru/fineract-cn-api-docs
>
>
>
> On Sun, Mar 15, 2020 at 2:32 PM Giorgio Zoppi 
> wrote:
>
>> Hello Gents,
>> is there any swagger docs for fineract-cn?
>> BR,
>> Giorgio
>>
>
>
> --
> *Ed Cable*
> President/CEO, Mifos Initiative
> edca...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>
> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
>   
>
>


Re: Which OpenJDK (Correto vs AdoptOpenJDK) for Fineract CN?

2020-03-15 Thread Juhan Aasaru
Hi Victor,

Licensing topics are complicated but my five cents on this.

* When you run a Java project on a JDK then you are not including JDK code
into your application (and you are not changing JDK code)
so whatever JDK you use it doesn't affect the license of that application.

* When you contribute code back then your code should be running on any
regular JDK.
So you should only use Java standard API-s and not use any internal or
private API-s.
Interoperability is the key aspect of Java so normally it would be very
hard for you to use any non-standard functionality from a JDK.

* Fineract-CN uses travis-ci for continuous integration and whatever
OpenJDK travis has available (I assume its AdoptOpenJDK)
this is the one we check your code against when building and running tests.

To sum up - use Correto for your own use case if you want but it shouldn't
affect how Fineract works on other JDK-s and
there should be no licensing issues.

* Your contribution for Spring Boot 2 and Java 11 upgrade would be most
welcome.
There is a separate branch created for this into each repo to make the
builds pass:
More info here: https://issues.apache.org/jira/browse/FINCN-172

Kind regards
Juhan

Kontakt Victor Romero () kirjutas kuupäeval
P, 15. märts 2020 kell 17:54:

> Hi mates,
>
> We work with customers in Mexico running high workloads and because of
> regulatory laws we need the best long term support and performance, not
> only for the core banking but also for the interfaces like payments and
> transactional switches.
>
> Since two years ago we have working on Fineract CN, which runs on Java 8
> and while working with technology partners tools, like Redhat Openshift, we
> found that the startup boot times and memory footprint was not the best and
> we switched to Java 11 (with a changes in Spring Boot from 1.5 to 2).
>
> At that time OpenJDK was the option, but in recent dates AWS is new new
> guy in the block.
>
> *So the question is, in order to contribute back to Fineract CN, which
> build of **OpenJDK fits better to Apache Fineract CN AdoptOpenJDK or
> Correto based on their licenses?*
>
> AdoptOpenJDK (EOL Sept 2022) -
> https://adoptopenjdk.net/about.html?variant=openjdk11=hotspot
>
> AWS Correto (EOL August 2024 ) - https://aws.amazon.com/corretto/faqs/
>
>
> Regards
>
> Victor
>


Re: FINERACT-807: mifosplatform-tenants => fineract_tenants & mifostenant-default => fineract_default (with underscore instead of dash)

2020-03-09 Thread Juhan Aasaru
Hi Nikhil!

Existing databases don't need to be migrated.
There is a configuration property "fineract.datasource.db"
Existing installations can leave value of this to old value
"mifosplatform-tenants"
while the new default (for new installations) is "fineract_tenants".

Kind regards
Juhan


Kontakt nikhilpa...@yahoo.in.INVALID ()
kirjutas kuupäeval P, 8. märts 2020 kell 19:00:

> Hi Michael,
>
> This is a good change. However, I don't see migration script/ or any other
> provision for existing databases which are in production and are using old
> naming convention.
> Please correct me, if this was handled and I have missed it.
>
> Regards,
> Nikhil
>
> On Sunday, 8 March, 2020, 09:28:45 am GMT-4, Michael Vorburger <
> m...@vorburger.ch> wrote:
>
>
> Hello everyone,
>
> please note the change of the database name mifosplatform-tenants to
> fineract_tenants and mifostenant-default to fineract_default, with
> underscore instead of dash for both,
>
> following today's merge of https://github.com/apache/fineract/pull/710,
> based on https://issues.apache.org/jira/browse/FINERACT-807.
>
> Tx,
> M.
> ___
> Michael Vorburger
> http://www.vorburger.ch
>


Re: Integration tests Still Failing on Sundays: apache/fineract#602 (develop - 7774766)

2020-01-26 Thread Juhan Aasaru
Hi Michael,

you can create Infra ticket for adding branch protection to develop branch.
Same thing has been done for Fineract-CN repositories by this ticket:
https://issues.apache.org/jira/browse/INFRA-19492

Kind regards
Juhan

Kontakt Michael Vorburger () kirjutas kuupäeval P, 26.
jaanuar 2020 kell 12:57:

> As far as I saw (only looked quickly), Nazeer actually accidentally broke
> more than was fixed... ;-) The "fix" for FINERACT-820 fails to pass
> Checkstyke. (Which is brand new, Nazeer see the recent post announcing it
> on this list.)
>
> BTW that commit was pushed without going through a PR. IMHO no committer
> should ever do that. (I'll try to find out if it's possible to activate
> GitHub's "protected branch" setting for 'develop', which should allow us to
> block this, when I'm back from... skiing! :)
>
> So someone should either revert that commit, or fix the Checkstyke
> problem. Personally I would just push a revert commit, and then expect a
> new PR, where we can verify the fix before merging it.
>
> M.
>
>
>
> On Sun, 26 Jan 2020, 11:11 Awasum Yannick,  wrote:
>
>> Hi All,
>>
>> Our Fineract 1.x integration tests still failing on Sundays?
>>
>> https://issues.apache.org/jira/browse/FINERACT-820 has been closed. Has
>> the problem finally gone away?
>>
>> Is anyone willing to look into this?
>>
>>
>> On Sun, Jan 26, 2020 at 10:24 AM Travis CI  wrote:
>>
>>> apache
>>>
>>> /
>>>
>>> fineract
>>>
>>> 
>>>
>>> [image: branch icon]develop
>>> 
>>> [image: build has failed]
>>> Build #602 is still failing
>>> 
>>> [image: arrow to build time]
>>> [image: clock icon]3 mins and 38 secs
>>>
>>> [image: Awasum Yannick avatar]Awasum Yannick
>>> 7774766 CHANGESET →
>>> 
>>>
>>> Update Gradle version from 5.6.1 to 6.1
>>>
>>> Want to know about upcoming build environment updates?
>>>
>>> Would you like to stay up-to-date with the upcoming Travis CI build
>>> environment updates? We set up a mailing list for you!
>>> SIGN UP HERE 
>>>
>>> [image: book icon]
>>>
>>> Documentation  about Travis CI
>>> Have any questions? We're here to help. 
>>> Unsubscribe
>>> 
>>> from build emails from the apache/fineract repository.
>>> To unsubscribe from *all* build emails, please update your settings
>>> .
>>>
>>> [image: black and white travis ci logo] 
>>>
>>> Travis CI GmbH, Rigaer Str. 8, 10427 Berlin, Germany | GF/CEO: Randy
>>> Jacops | Contact: cont...@travis-ci.com | Amtsgericht Charlottenburg,
>>> Berlin, HRB 140133 B | Umsatzsteuer-ID gemäß §27 a Umsatzsteuergesetz:
>>> DE282002648
>>>
>>


Re: Fineract-CN update to Spring Boot 2

2020-01-22 Thread Juhan Aasaru
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 () 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,  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
>>
>>


Fineract-CN update to Spring Boot 2

2020-01-22 Thread Juhan Aasaru
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 cloudnative with istio-mesh

2020-01-22 Thread Juhan Aasaru
Hi Rohit!

I'm very glad you are willing to work on Fineract-CN.
There is a lot of discussion points here and these need some time to think
about.
However I think it is a very good plan to pick topics one by one and start
to move ahead.
I am ready to help you on the way.

As a first goal I propose updating versions of Spring Boot and Spring.
As you indicated you have alread done that on your fork, let's try to get
this into common code base.

Shortly I will create a new thread in the dev mailing list for Spring Boot
update, let's keep that discussion there
and rest of the discussion here.

Kind regards
Juhan







Kontakt Rohit Verma () kirjutas kuupäeval K, 22.
jaanuar 2020 kell 12:20:

> Hi Juhan,
>
> Thanks for taking your time and going through the proposal. Yes I
> completely agree that fineract cn need to do a little of catchup with
> respect to spring and we have actually taken a similar step of creating an
> application leveraging existing template and using that for orchestration.
>
> I completely agree with your thoughts at the same time I would love to
> contribute back while I am building for my team. These are some of our
> internal thoughts which we had.
>
> I am thinking out loud, can we do better SOC, can we delegate better. Can
> we do RBAC,ABAC etc better, etc... Would love to go through the list some
> time with you, but yeah this is just for starting.
> Also the fact that you need an orchestration engine/gateway for your
> instance of fineract-cn kind of aligns to this that there are few things
> still missing.
>
> Lets come back to the initial request for a more separated authentication,
> I think we can understand why we needed SAML, oauth, openid-connect etc,
> and since we have those things for validating the idps, its highly possible
> that we can use the same, we implement our own identity provider service
> (somewhat simpler version of current identity module), use roles like
> customer, L1 support, L2 support, Manager etc...
>
> It's good that we build that thing, but different orgs have different
> structures and they usually want to merge their structures with the
> product.  The whole idea is to break the system in some standard way,
> 1. An Identity Provider
> 2. An authorization Server
> 3. A resource server
> We are integrating Ory in our suite (I am a go developer working with
> java), I encourage you to take a small look.
>
> Now when we say fineract-CN (cloud native), I believe its not a bad thing
> to bind our architecture with Kubernetes, there are millions of cloud
> native product  in kubernetes family and we should embrace that.
> Things like Prometheus, Jaeger, coredns are usually close friends.
>
> I am not aware what's the plan for fineract on moving towards kubernetes,
> or going with a complete container native engine.
>
> Its usually considered that the runtime doesn't meant a whole while
> architecting the things, but if we are building something for 1 Billion
> Indians, we have to take some extra things in consideration.
> Horizontal scaling takes over vertical scaling, NIO takes over servlets
> etc...
>
> We had started moving the libraries initially and did failed some issues
> within there only. But yeah we have updated the versions.
>
> https://github.com/apache/fineract-cn-lang/compare/develop...jupitermoney:update
>
> We respect few decisions as well e.g. Postgres and cassandra are very well
> suited, but want to replace MQ with kafka with even selectors as partitions
> etc...
>
> Similarly I want to know more about your opinion on webflux vs servlet and
> r2db vs jdbc (
> https://dzone.com/articles/introduction-to-reactive-apis-with-postgres-r2dbc)
> etc...
> Again I want to let you know that we want to make the systems supported
> more of horizontal scaling.
>
> Some common issues with standard jdbc pools in microservices is, if we are
> maintaining a connection pool(e.g. 20 cap). with one microservice, as we
> scale the instance to 20, now we need a db which supports 20*20 poolsize.
> There are many solutions to this but this one usually requires less
> worries.
>
> I noticed that lang project is also creating some filters and that's
> seems the root of tree.
>
> I can commit that I would love to devote my next few months making
> fineract more cloudnative and updated, just keep guiding me :)
> Lets pick the topics 1 by 1 and move ahead.
>
> If you want I can start opening github issues, we can discuss things on
> each and then get that done.
>
> Regards
> Rohit
>
> On Mon, Jan 20, 2020 at 12:56 PM Juhan Aasaru  wrote:
>
>> Hi Rohit!
>>
>> Your requirements are very specific to your organization and use case but
>> we here have to keep Fineract-CN open for anyone.

Re: Fineract cloudnative with istio-mesh

2020-01-19 Thread Juhan Aasaru
Hi Rohit!

Your requirements are very specific to your organization and use case but
we here have to keep Fineract-CN open for anyone.
So I wouldn't except getting the underlying technologies changed to some
alternative unless the existing technology would have
a serios drawback. But of course you are welcome to take Fineract and
change it to what you need for your organisation.

I find it hard to answer your questions because they are two broad.
I would expect much more specific questions with much more detail.
As I cannot answer your questions I will share my own principles that I
have followed when building on top of Fineract-CN.

My take is to change as little as possible within Fineract itself and add
all the custom logic to a new micro service.
One reason for this is that when something is fixed or added to Fineract
then it is possible for me to update my internal code base.
If my internal code base would have a lot of changes I wouldn't be able to
update any more in the future.
And also I wouldn't be able to give my internal changes back to the common
code base.

I have a separate gateway application in front of Fineract and it has its
own authentication with the clients.
It maps the authentication with the external world to the authentication
with the internal Fineract cn micro services.
The internal JWT tokens are not visible to the outside world.

All the requests (except changing the password) go through this gateway
application. It is based on
Fineract-cn-template - a template for new micro services in fineract-cn.
When I want to create a customer and an account
then I call an endpoint in my gateway that then creates a command and the
command handler calls
create customer in fineract-cn-customer and create account on
finerac-cn-deposit. So it is kind of aggregator
of the internal calls.

I'm running it in Docker and Eureka (that is also a client side load
balancer) is not the best technology for
Docker (which is a server-side load balancer by its nature). But I haven't
run to change the technology because
Feign that is used in Fineract-Cn gives me an ability to call the micro
services on code level, rather than
making raw calls to HTTP endpoints. So this saves me a lot of time from
coding.

In my opinion the biggest drawback with the current situation of
Fineract-CN is that it is based on Spring Boot 1.4.
I checked one of your forks
https://github.com/apache/fineract-cn-identity/compare/develop...jupitermoney:develop
and I see that you haven't updated to Spring Boot 2.x either. I haven't
done it either due to lack of time.

The problem is that when you start to build micro services to Fineract-CN
and you use Fineract-Cn-template
as template then you have to base your new code also on Spring Boot 1.4
which means you are producing
out-of-date code from day #1. So My biggest worry is currently that how we
could aling efforts of the community
to update to new version of Spring Boot. If we don't solve this problem
then there is little benefit from adding
other features or chaning underlying technologies as it all becomes out of
date.

Juhan



Kontakt Rohit Verma () kirjutas
kuupäeval K, 15. jaanuar 2020 kell 06:21:

> All communications are about fineract-CN, not fineract 1.X.
>
> I have upgraded the dependencies of spring boot and spring, but facing
> some issues with new cassandra driver.
>
> The updated code is in jupitermoney fork in update branch.
>
> To start with my initial requirement, we actually want to facilitate 2
> factor authentication, thus we are thinking of bringing in cognito as the
> authentication provider, where end to end authorization is through jwt.
> Do you have any idea's about what would be a good starting point?
>
> Regards
> Rohit
>
> On Wed, Jan 15, 2020 at 3:38 AM Awasum Yannick  wrote:
>
>> Hi Rohit,
>>
>> Are you talking wrt Fineract 1.x or Fineract CN. There are two projects
>> withing Apache Fineract. Mike, it seems Rohit is talking about Fineract CN.
>>
>> I think it will be great to upgrade Spring Boot and Spring versions for
>> Fineract CN before looking into any of the points discussed above. Maybe
>> start with upgrading to gradle 5 ot 6.
>>
>>
>> Thanks
>> Awasum
>>
>>
>>
>>
>> On Tue, Jan 14, 2020 at 8:46 PM Michael Vorburger 
>> wrote:
>>
>>> Hi,
>>>
>>> On Tue, 14 Jan 2020, 10:52 Rohit Verma,
>>>  wrote:
>>>
 Hi Mike,

 Actually we already have a way to build java project based on
 distroless based on distroless and within our fineract forks we are using
 that only, at this stage its just a matter of pull request.

>>>
>>> Oh, if you've already done it, then yes by all means do send a PR -
>>> looking forward to reviewing it!
>>>
>>> Usually for all the forks setting up ci/cd is very essential and the way
 travis-ci limiting the free build minutes even on public projects, it
 creates challenges for the fork.

>>>
>>> We haven't had any capacity issues with the current CI set-up for
>>> 

Re: FINCN-189

2020-01-03 Thread Juhan Aasaru
Hi Victor,

I thought first part (point 1) could be formulated as completely separate
task with its own Jira ticket. So I created the ticket here:
https://issues.apache.org/jira/browse/FINCN-196
and added my feedback about it as separate comment (basically go ahead and
send pull requests)

I think I don't fully understand your ideas about how you propose solving
part two.
Could you elaborate?

Kind regards
Juhan


Kontakt Victor Romero () kirjutas kuupäeval
R, 3. jaanuar 2020 kell 07:04:

> Hi Juhan & Fineract folks,
>
> I was checking the Jira ticket for Fineract CN
> https://issues.apache.org/jira/browse/FINCN-189
>
> I think the logging and monitoring should be done in two parts:
>
>
>1. Check for the infrastructure availability - health check/readiness
>2. Check for the health and gather information of each Microservice
>for feeding the logging and monitoring applications like Prometheus, ELK,
>Splunk or APM like AppDynamics.
>
> For each Docker container we have done a quick solution for checking if
> the availability of each service, not only the TCP port checking but for
> the database readiness or the backend on the other side of the middleware
> messaging.
>
> Initially we have done the improvement for point 1 here:
>
> https://github.com/fintecheando/fineract-cn-docker-compose
>
> https://github.com/itzamnamx/fineract-cn-lang-security-docker
>
> https://github.com/itzamnamx/fineract-cn-provisioner
>
> https://github.com/fintecheando/fineract-cn-identity
>
>
>
> What we have done is using the docker segmentation of the services and the
> dependency verification for the startup. We have tested this in our local
> dev and works. If this is Ok, please assign me this ticket so then I will
> send the PRs to the Fineract repositories.
>
> For point 2 we have used Spring boot actuator for accomplish the task but
> is required to have the Logging and Monitoring tools enabled, we prefer to
> use ELK or Prometheus.
>
> Let me know your thoughts.
>
> Regards
>
>
>
> Victor Romero
>
>


Re: FW: help jump starting?

2019-12-21 Thread Juhan Aasaru
Hi Gerald,

welcome to the Fineract community!
This is just a warning, you can ignore that (deploy key exists there so we
could use the same docker-compose script for deploying to swarm).
Thanks for the feedback, I now updated the instructions accordingly.

You can raise issues here:
https://issues.apache.org/jira/projects/FINCN/issues  (Project "Fineract
Cloud Native")
You need to register an account for creating issues.

Kind regards
Juhan


Kontakt Gerald O'Sullivan () kirjutas kuupäeval
L, 21. detsember 2019 kell 15:50:

> Hi Juhan, thanks I am working through your notes now.
>
> Note that the docker-compose step generates a warning:
> 'WARNING: Some services (activemq, cassandra, eureka) use the 'deploy'
> key, which will be ignored. Compose does not support 'deploy' configuration
> - use `docker stack deploy` to deploy to a swarm."
>
> But this did not stop the deployment because I can see the services:
>
> sudo netstat -tulpn | grep '5432\|9042\|8761\|8161'
>
> tcp6   0 0 :::5432 :::* LISTEN   15226/docker-proxy
>
> tcp6   0 0 :::8761 :::* LISTEN   15347/docker-proxy
>
> tcp6   0 0 :::8161 :::* LISTEN   15255/docker-proxy
>
> tcp6   0 0 :::9042 :::* LISTEN   15294/docker-proxy
>
> Where do you guys raise issues? I have just joined the community so I
> would like to do the right thing.
>
> Best
> Gerald
>
>
> On Thu, 19 Dec 2019 at 14:02, Juhan Aasaru  wrote:
>
>> Hi!
>>
>> it would be helpful if someone else would take time and try to set up the
>> bare minimum according to
>> the instructions I wrote:
>>
>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally
>> This is the bare minimum so it shouldn't take much time to follow the
>> steps.
>> This way we would get instructions that are tested and polished.
>> And we would have more people who could support in the mailing list.
>>
>> Regarding logs of Rohit - I created a paste in pastebin for them:
>> https://pastebin.com/7rfpdqpY
>> Rohit and anyone else - use that service instead of attachments.
>>
>> Juhan
>>
>> Kontakt Awasum Yannick () kirjutas kuupäeval N, 19.
>> detsember 2019 kell 13:51:
>>
>>> A call is really needed to unblock Rohit. Juhan or Courage, Will you be
>>> able to arrange something?
>>>
>>> Why is Fineract CN getting difficult to build? I thought there was a
>>> time when everything worked fine. the build process..etc. Is it that the
>>> knowledge is not documented or the architecture is just too complex?
>>>
>>> What is the bottle neck here?
>>>
>>> On Thu, Dec 19, 2019 at 12:03 AM Courage Angeh 
>>> wrote:
>>>
>>>> Can you try to send it to just me?
>>>>
>>>> On Wed, Dec 18, 2019 at 6:01 PM Rohit Jain 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *From:* Rohit Jain
>>>>> *Sent:* Tuesday, December 17, 2019 11:32 AM
>>>>> *To:* dev@fineract.apache.org
>>>>> *Subject:* RE: help jump starting?
>>>>>
>>>>>
>>>>>
>>>>> When I ran into a dead end with the errors after following the build
>>>>> recommendations
>>>>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
>>>>>  that
>>>>> no one could help resolve, Juhan recommended his recipe
>>>>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally.
>>>>> I followed that and have run into another roadblock.  Hope someone can
>>>>> help me with this, since I have not been able to get a working set of
>>>>> Finearact, in order to proceed to the next step.  Or perhaps suggest yet
>>>>> another alternative.
>>>>>
>>>>>
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Rohit
>>>>>
>>>>>
>>>>>
>>>>> *From:* Juhan Aasaru 
>>>>> *Sent:* Thursday, December 12, 2019 1:57 AM
>>>>> *To:* Dev 
>>>>> *Cc:* Ebenezer Graham 
>>>>> *Subject:* Re: help jump starting?
>>>>>
>>>>>
>>>>>
>>>>> Hi!
>>>>>
>>>>> I cannot help you with the error you got but instead I will propose a
>>>>> better solution.
>>>

Re: fineract-cn docker compose

2019-12-19 Thread Juhan Aasaru
Hi James!

I agree with you that there are many ways to fail in this path.
Which instructions are you trying to follow exactly (sorry, there are many
options)?

I wrote these instructions
https://github.com/apache/fineract-cn-docker-compose/#2-deploy-fineract-manually-using-postman
while Courage wrote provisioning with bash scripts (probably we should
split them to two separate instructions for clarity).

Also a bit depends on your operating system. I have tested my stuff with
Mac and I know Courage has Linux.
Some parts of Docker work differently - for example in Linux you the IP
addresses assigned to individual containers
are visible to the host machine from outside Docker. In Mac the internal
IP-s are completely hidden.
What OS do you use?

> Anyway, I get only to the verification part, where I find the verify
statements don't work for me.
> e.g. http://eureka:8761/
>Should this instead be IP of docker machine on port 8761 ?

I now realised that hostname "eureka" was missing from the instructions
here:
https://github.com/apache/fineract-cn-docker-compose/#use-the-postman-scripts-when-running-locally
so I just added it to the first line. Make sure to update your hosts file
accordingly.

"eureka" is the dns name inside Docker. To make it visible to the host
machine (everything outside docker but still in same machine)
I have used a trick to edit hosts file of the host machine so that if you
try to find "eureka" it resolves to "localhost"
and since you have exposed port 8761 from Docker daemon to your host
machine it should work.

> And, can I use IntelliJ Community version or do I need to have the paid
version so that I can follow your instructions literally?
Community edition should be perfectly fine. As much I know we are not using
any paid features of IntelliJ anywhere in the instructions (so even Eclipse
should do)

$docker-compose up -d

WARNING: Some services (activemq, cassandra, eureka) use the 'deploy' key,
which #will be ignored. Compose does not support 'deploy' configuration -
use `docker #stack deploy` to deploy to a swarm.

ERROR: Couldn't connect to Docker daemon - you might need to run
`docker-machine start default`.

Try running the command without "-d" flag.
This way it starts it in foreground without daemon mode.

Kind regards
Juhan

Kontakt James Dailey () kirjutas kuupäeval R, 20.
detsember 2019 kell 06:37:

> Hi @Juhan, @Courage Angeh 
>
> I am willing to try to help with this documentation of getting fineractCN
> up and running. Once I go through it, it will include all of the possible
> ways to badly go about it.  :)
>
> Below is my path through some docker and docker compose issues. But, its
> probably too much detail.  Could belong in some extra notes below the main
> instructions.
>
> Anyway, I get only to the verification part, where I find the verify
> statements don't work for me.
> e.g. http://eureka:8761/
> Should this instead be IP of docker machine on port 8761 ?
> ?
>
> and while I have IntelliJ installed and running, and I have a local
> provisioner repo, I don't see the screen step that you show for the
> provisioner.
>
> And, can I use IntelliJ Community version or do I need to have the paid
> version so that I can follow your instructions literally?
>
>
> ---  Docker compose and starting a local docker machine.
>
>
> After following the first part of the directions @Juhan wrote at
>
>
> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally
>
>
>
> Verify that Docker is working
>
> $docker
>
> #returns something intelligent, the list of commands
>
>
>
> here is a bit of terminal back and forth -
>
>
> $ pwd
>
> # returns
>
> /Users/{username}/code/mifos/fineract-cn-docker-compose/external_tools
>
>
> $Docker-compose up -d
>
> #returns
>
> you may need to run
>
> docker-machine start default
>
>
> $docker-machine create default
>
> #returns… finally
>
> Docker is up and running!
>
> To see how to connect your Docker Client to the Docker Engine running on
> this virtual machine, run: docker-machine env default
>
>
> $docker-machine env default
>
> # this should display, something like:
>
> export DOCKER_TLS_VERIFY="1"
>
> export DOCKER_HOST="tcp://192.168.99.102:2376"
>
> export
> DOCKER_CERT_PATH="/Users/{youruser}/.docker/machine/machines/default"
>
> export DOCKER_MACHINE_NAME="default"
>
> Run this command to configure your shell:
>
> eval $(docker-machine env default)
>
>
> $docker-compose up -d
>
> WARNING: Some services (activemq, cassandra, eureka) use the 'deploy'
> key, which #will be ignored. Compose does not support 'deploy'
> configuration - use `docker #stack deploy` to deploy to a swarm.
>
> ERROR: Couldn't connect to Docker daemon - you might need to run
> `docker-machine start default`.
>
>
> $ docker-machine ls
>
> NAME  ACTIVE   DRIVER   STATE URL
> SWARM   DOCKER ERRORS
>
> default   -virtualbox   Running   tcp://192.168.99.102:2376
> v19.03.5
>
>
> $docker info
>
> #Returns
>
> 

Re: FW: help jump starting?

2019-12-19 Thread Juhan Aasaru
Hi!

it would be helpful if someone else would take time and try to set up the
bare minimum according to
the instructions I wrote:
https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally
This is the bare minimum so it shouldn't take much time to follow the steps.
This way we would get instructions that are tested and polished.
And we would have more people who could support in the mailing list.

Regarding logs of Rohit - I created a paste in pastebin for them:
https://pastebin.com/7rfpdqpY
Rohit and anyone else - use that service instead of attachments.

Juhan

Kontakt Awasum Yannick () kirjutas kuupäeval N, 19.
detsember 2019 kell 13:51:

> A call is really needed to unblock Rohit. Juhan or Courage, Will you be
> able to arrange something?
>
> Why is Fineract CN getting difficult to build? I thought there was a time
> when everything worked fine. the build process..etc. Is it that the
> knowledge is not documented or the architecture is just too complex?
>
> What is the bottle neck here?
>
> On Thu, Dec 19, 2019 at 12:03 AM Courage Angeh 
> wrote:
>
>> Can you try to send it to just me?
>>
>> On Wed, Dec 18, 2019 at 6:01 PM Rohit Jain  wrote:
>>
>>>
>>>
>>>
>>>
>>> *From:* Rohit Jain
>>> *Sent:* Tuesday, December 17, 2019 11:32 AM
>>> *To:* dev@fineract.apache.org
>>> *Subject:* RE: help jump starting?
>>>
>>>
>>>
>>> When I ran into a dead end with the errors after following the build
>>> recommendations
>>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN
>>>  that
>>> no one could help resolve, Juhan recommended his recipe
>>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally.
>>> I followed that and have run into another roadblock.  Hope someone can
>>> help me with this, since I have not been able to get a working set of
>>> Finearact, in order to proceed to the next step.  Or perhaps suggest yet
>>> another alternative.
>>>
>>>
>>>
>>> Thanks!
>>>
>>> Rohit
>>>
>>>
>>>
>>> *From:* Juhan Aasaru 
>>> *Sent:* Thursday, December 12, 2019 1:57 AM
>>> *To:* Dev 
>>> *Cc:* Ebenezer Graham 
>>> *Subject:* Re: help jump starting?
>>>
>>>
>>>
>>> Hi!
>>>
>>> I cannot help you with the error you got but instead I will propose a
>>> better solution.
>>>
>>> Right now you have been trying to set up Fineract-CN using demo server
>>> which is more
>>>
>>> suitable to demonstrate the solution. This doesn't help you much with
>>> getting started with developmentent
>>>
>>> as you cannot run individual micro services directly from your IDE.
>>>
>>>
>>>
>>> Instead I wrote a new tutorial how to set up bare minimum of Fineract-CN:
>>>
>>>
>>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally
>>>
>>> This only sets up Provisioner and Identity micro services
>>>
>>> but you should get them running with your IDE (I use IntelliJ) so you
>>> can jump into development
>>>
>>> and maybe compose a proof-of-concept with only these two micro services.
>>>
>>>
>>>
>>> It is possible to add other micro services step-by-step afterwards but
>>> my instructions don't cover that.
>>>
>>> In the end of the tutorial I also propose starting up Fims Web App (UI
>>> of fineract-cn) but
>>>
>>> currently I didn't manage to do complete it myself.
>>>
>>>
>>>
>>> Anyway I propose to test my instructions as you should get up to speed
>>> quickly.
>>>
>>> Anyone else is welcome to give feedback as well (or fix directly in
>>> Confluence).
>>>
>>>
>>>
>>> Kind regards
>>>
>>> Juhan
>>>
>>>
>>>
>>>
>>>
>>> Kontakt Rohit Jain () kirjutas kuupäeval K, 11.
>>> detsember 2019 kell 19:31:
>>>
>>> Hi guys,
>>>
>>>
>>>
>>> I am stuck.  Any pointers?  Advice on a different approach?
>>>
>>>
>>>
>>> Rohit
>>>
>>>
>>>
>>> *From:* Rohit Jain
>>> *Sent:* Monday, December 9, 2019 1:11 PM
>>> *To:* dev@fineract.apache.org
>>> *Cc:* Ebenezer Graham 
>

Fwd: help jump starting?

2019-12-18 Thread Juhan Aasaru
H!

Rohit only sent the log file to me.
I will forward it to the list now.

Juhan

Kontakt Rohit Jain () kirjutas kuupäeval T, 17.
detsember 2019 kell 04:13:

> Juhan,
>
>
>
> Thanks for that!  I realized I had made a very foolish mistake in cutting
> and pasting from your instructions into the application-common.properties
> file.  Since it said “Open newly generated … file .. and add to the end
> of the file:” I did not pay attention to what the rest said since it all
> looked alike and copied and pasted the whole thing including the section 
> “#Keep
> the values you created” before the “#add following values”.  I would
> suggest putting the keep the values you created section *before* that
> sentence, saying that the Generate RSA keys step will create the following
> in the file.  And then follow that with the “Open newly generated …file …”
> and “#add following values”.
>
>
>
> However, while I got beyond the RSA errors I encountered new ones ☹.  See
> attached.
>
>
>
> Rohit
>
>
>
> *From:* Juhan Aasaru 
> *Sent:* Sunday, December 15, 2019 11:59 AM
> *To:* Rohit Jain 
> *Subject:* Re: help jump starting?
>
>
>
> External
>
> Hi Rohit!
>
>
>
> If you open the class SystemRsaKeyProvider
>
> (in Intellij choose Navigate -> Class -> type in "SystemRsaKeyProvider")
>
> and look into what the class is doing then you see that init method
>
> tries to convert two strings into BigInteger-s:
>
>
>
> systemPublicKeyMod which is read in from "system.publicKey.modulus"
>
> and
>
> systemPublicKeyExp which is read in from "system.publicKey.exponent"
>
>
>
> Since you get NumberFormatException then one of these values
>
> is not a number. Open
>
> application-common.properties
>
> where these values are defined
>
> and make sure that you don't have any problems with linefeeds or
> non-numbers there.
>
>
>
> You can also set a a breakpoint to init method and instead of clicking Run
> you could click Debug
>
> in IntelliJ. And then you should be able to examine the values before the
> error arises.
>
>
>
> If you don't find any problems email me your file
> application-common.properties,
>
> maybe I could spot it.
>
>
> Good luck!
>
> Juhan
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Kontakt Rohit Jain () kirjutas kuupäeval R, 13.
> detsember 2019 kell 23:51:
>
> Juhan,
>
>
>
> I followed the instructions and made good progress until I tried to Run
> the ProvisionerApplication. I am running on Windows 10.  I usually use
> Eclipse but I installed IntelliJ so that I can follow your instructions.
> But in the final Run instruction where I am supposed to get success, I get
> the following error: “Error running ‘ProvisionerApplication’: Command line
> too long.  Shorten command line for ProvisionerApplication or also for
> Application default configuration.
>
>
>
> I used the shorten command line option to choose JAR manifest and other
> options and it was more successful.  The Provisioner seemed to start up but
> then encounters the error that you see in the log attached:
>
> org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> creating bean with name
> 'org.apache.fineract.cn.anubis.config.AnubisSecurityConfigurerAdapter':
> Unsatisfied dependency expressed through method 'configureGlobal' parameter
> 1; nested exception is
> org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> creating bean with name
> 'org.apache.fineract.cn.anubis.security.IsisAuthenticatedAuthenticationProvider':
> Unsatisfied dependency expressed through constructor parameter 0; nested
> exception is org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name
> 'org.apache.fineract.cn.anubis.provider.SystemRsaKeyProvider': Invocation
> of init method failed; nested exception is java.lang.NumberFormatException:
> For input string: "654279..."
>
>
>
> Rohit
>
>
>
> *From:* Rohit Jain
> *Sent:* Thursday, December 12, 2019 1:08 PM
> *To:* dev@fineract.apache.org
> *Cc:* Ebenezer Graham 
> *Subject:* RE: help jump starting?
>
>
>
> Awesome Juhan!  Will try that.
>
>
>
> *From:* Juhan Aasaru 
> *Sent:* Thursday, December 12, 2019 1:57 AM
> *To:* Dev 
> *Cc:* Ebenezer Graham 
> *Subject:* Re: help jump starting?
>
>
>
> Hi!
>
> I cannot help you with the error you got but instead I will propose a
> better solution.
>
> Right now you have been trying to set up Fineract-CN using demo server
> which is more
>
>

Re: help jump starting?

2019-12-11 Thread Juhan Aasaru
e.  Later I would like
>to run some performance tests at scale to demonstrate where Trafodion can
>really make a difference for Fineract customers needing high-scalability.
>But I need to get it all working first.
>
>
>
> So, any guidance would greatly be appreciated.  Thanks for your patience
> and all your help!
>
> Rohit
>
>
>
> *From:* Awasum Yannick 
> *Sent:* Friday, December 6, 2019 2:18 AM
> *To:* Dev 
> *Cc:* Rohit Jain ; Ebenezer Graham <
> egraha...@alustudent.com>
> *Subject:* Re: help jump starting?
>
>
>
> Hi Juhan,
>
>
>
> I think you are right and it is time to rewrite the build instructions for
> Fineract CN to adopt the Docker approach. Anyone interested in doing this
> work?
>
>
>
> On Fri, Dec 6, 2019 at 7:50 AM Juhan Aasaru  wrote:
>
> Hi!
>
> The problem with npm is caused by the fact that you have not cd into
> correct directory.
>
> The instructions under step #4 have this: cd into
> ‘integration-tests/fineract-cn-fims-web-app'
>
>
>
> Anyway, we can all agree that the build instructions of Fineract-CN are
> almost impossible to properly follow.
>
> And actually there is no need to use demo server. Demo server sets up the
> system but
>
> its quite untransparent and difficult to understand for a newcomer. Don't
> get me wrong, it
>
> is a great resource afterwards when learning how to call micro services
> from code and
>
> how to use listeners.
>
>
>
> To set up the system for the first time I recommend to use Docker-Compose
> with Postman instead:
>
>
> https://github.com/apache/fineract-cn-docker-compose#2-deploy-fineract-manually-using-postman
>
> This is all tested several times and should work like a charm.
>
>
>
> The following is an idea of mine that is not anywhere documented yet due
> to lack of time.
>
> Based on Docker-Compose process we could also create instructions where
> micro services are not
>
> started within Docker but they are started directly (run from IDE or java
> -jar ...).
>
>
>
> Docker-Compose instructions include creating .env file with common
> properties (and RSA keys).
>
> To run micro services directly basically a similar file should be created,
> let's call it applciation-locally.yml
>
> and then when starting apps this file should be passed as flag:
>
> --spring.config.location=../application-locally.yml
>
>
>
> Provisioning is be done with Postman (see instructions at
> fineract-cn-docker-compose)
>
>  - this way one understands better what steps are taking place during
> provisioning.
>
>
>
> Kind regards
>
> Juhan
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Kontakt Awasum Yannick () kirjutas kuupäeval R,
> 6. detsember 2019 kell 04:35:
>
> Why are you running npm (x) on a non node, non js repo (demo-server) ?
>
>
>
> The timeout might be showing a lack of memory problem. What is the
> capacity of your machine?
>
>
>
> On Thu, Dec 5, 2019 at 9:40 PM Rohit Jain  wrote:
>
> Thanks guys!
>
>
>
> I think I got off the track right at the beginning of *Step 3:
> Orchestrate Microservices Using The Demo-server*.  It said “… *consider*
> manually orchestrating …”.  I thought I *needed to* go to
> https://github.com/vishwasbabu/ProvisioningFineractCN.  That is where it
> says start ActiveMQ.  Which is why I did.  I abandoned that effort when I
> realized that “consider” meant optional, and I did not really need to do
> that, since that whole key generation was getting a bit complicated on
> Windows 10.  But then ActiveMQ was still running when I proceeded with the
> rest of the instructions to build.  My bad!
>
> Because I had started ActiveMQ, initially demo-server immediately
> complained about not being able to use port 61616.  In fact, the
> instructions say that this port should not be in use before starting
> demo-server.  I guess I did not pay attention to that part until I got that
> error.  I then stopped ActiveMQ, changed the port 61616 it was using, to
> 61615, and restarted it (doh!).  Demo-server then ran for a long time.  But
> then it gave me a slew of *connection refused* errors for port 61616,
> even though ActiveMQ was not using it, and *not that the port was being
> used*.
>
>
>
> Regardless, I stopped ActiveMQ and this time ran with Command II in the
> documentation.  I did not run into the connection refused error!
>
> This time I got some  [DicoverClient-*n*] errors that 
> c.n.discovery.TimedSupervisorTask
> – task supervisor timed out
>
>
>
> But demo-server kept going after those timeouts and has now been running
> for 3 hours wi

Re: Fineract build

2019-12-05 Thread Juhan Aasaru
Hi!

gradlew is packaged together with the application code.
So when you clone the repo you also get gradlew.bat
It is this file:
https://github.com/apache/fineract-cn-demo-server/blob/develop/gradlew.bat

Juhan

Kontakt Rohit Jain () kirjutas kuupäeval N, 5.
detsember 2019 kell 19:20:

> Thanks guys!  As I said, I was able to build successfully and move on with
> the changes I made, although they required an investment of time to
> research.  So, I was just passing those solutions along.  I want to remind
> you that I am doing this on Windows 10.  And while folks have said that the
> OS should not matter, Gradle 5.6, as installed, does NOT have gradlew.
> That is certainly what I tried first as the instructions said to.  Now,
> there might be a way to run gradlew on Windows, but I chose the “easier”
> path, and perhaps it turned out to be the harder path.
>
>
>
> *From:* Maek Twain 
> *Sent:* Thursday, December 5, 2019 3:01 AM
> *To:* Dev 
> *Cc:* Victor Romero 
> *Subject:* Re: Fineract build
>
>
>
> You can skip the licenseMain task in gradle using -x licenseMain.
>
>
>
> I mean it's fine if you are testing it now.
>
>
>
> Rest is in your hands
>
>
>
> On Thu, 5 Dec 2019, 13:17 Juhan Aasaru,  wrote:
>
> Windows should be fine, you should get everything working on that.
>
> Michael has a little typo, you need to use
>
>
>
> ./gradlew (or ./gradlew.bat)
>
>
>
> insead of "gradle".
>
>
>
> You probably have Gradle 5 in your path which is not compatible (run
> "gradle --version" to see what version you have).
>
> Also if you absolutely want to use locally installed Gradle instead of
> Gradle Wrapper (gradlew)
>
> - sometimes I have done this with IntelliJ not using Gradle Wrapper for
> some reason
>
> then you need to download gradle 4.10.3 to your local computer and make
> changes to the Path variable so that when you type
>
> "gralde --version" it reports this version number.
>
>
>
> Juhan
>
>
>
> Kontakt Michael Vorburger () kirjutas kuupäeval N, 5.
> detsember 2019 kell 08:39:
>
> These error messages look like they could be caused by a mismatch in
> Gradle version.
>
>
>
> Instead of installing Gradle yourself and using "gradle" as the command,
> try using ./gradlewt to see if that helps?
>
>
>
>
>
> On Wed, Dec 4, 2019 at 2:07 PM Rohit Jain  wrote:
>
> No changes.  I am following the build guidelines as outlined on that web
> page.
>
>
>
> *From:* Victor Romero 
> *Sent:* Wednesday, December 4, 2019 3:56 PM
> *To:* dev@fineract.apache.org
> *Subject:* Re: Fineract build
>
>
>
> External
>
> Hi Rohit,
>
>
>
> That is not related to Operating System issues.
>
>
>
> It is Fineract-CN code itself. Have you done any change or is a fresh
> clone ?
>
>
>
> Regards
>
>
>
> Victor
>
> El 4 de diciembre de 2019 a las 10:56 AM Rohit Jain 
> escribió:
>
> When I started to build using the instructions on
> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN,
> I followed the recommended *option 1* in *Step 2: Get Program Code* and
> ran into some issues when I ran gradle build (remember, I am trying to do
> this on a Windows laptop – probably not the ideal environment, and perhaps
> I should find a Linux build environment, although we don’t really use
> Ubuntu):
>
> · I ran into:
> java.lang.NoClassDefFoundError: org.gradle.api.internal.ClosureBackedAction
> Found that I needed to add the following in *plugins* to the build.gradle
> file to resolve that:
> id "io.spring.dependency-management" version "1.0.8.RELEASE"
>
> · However, I then got an error:
> java.lang.NoClassDefFoundError:
> io/spring/gradle/dependencymanagement/DependencyManagementExtension
> Found that I needed to modify the id "org.springframework.boot" in
> build.gradle *plugins* to version "1.5.21.RELEASE"
>
> · Then it looked really promising.  But then I got an error:
> org.gradle.api.tasks.TaskExecutionException: Execution failed for task
> ':licenseMain'
> This was ultimately resolved by adding the following lines to the
> *license* section of the build.gradle file:
> skipExistingHeaders true
> ignoreFailures true
> and adding the following lines before the license section
> gradle.startParameter.excludedTaskNames += "licenseMain"
> gradle.startParameter.excludedTaskNames += "licenseTest"
>
>
>
> Don’t know how relevant this is to the rest of the community for builds
> done on Ubuntu, the preferred OS.  So, it is up to you guys to decide
> whether you want to create a JIRA to rectify some or all of this, or ignore
> it.
>
>
>
> Rohit
>
>
>
>
>


Re: help jump starting?

2019-12-05 Thread Juhan Aasaru
Hi!

The problem with npm is caused by the fact that you have not cd into
correct directory.
The instructions under step #4 have this: cd into
‘integration-tests/fineract-cn-fims-web-app'

Anyway, we can all agree that the build instructions of Fineract-CN are
almost impossible to properly follow.
And actually there is no need to use demo server. Demo server sets up the
system but
its quite untransparent and difficult to understand for a newcomer. Don't
get me wrong, it
is a great resource afterwards when learning how to call micro services
from code and
how to use listeners.

To set up the system for the first time I recommend to use Docker-Compose
with Postman instead:
https://github.com/apache/fineract-cn-docker-compose#2-deploy-fineract-manually-using-postman
This is all tested several times and should work like a charm.

The following is an idea of mine that is not anywhere documented yet due to
lack of time.
Based on Docker-Compose process we could also create instructions where
micro services are not
started within Docker but they are started directly (run from IDE or java
-jar ...).

Docker-Compose instructions include creating .env file with common
properties (and RSA keys).
To run micro services directly basically a similar file should be created,
let's call it applciation-locally.yml
and then when starting apps this file should be passed as flag:
--spring.config.location=../application-locally.yml

Provisioning is be done with Postman (see instructions at
fineract-cn-docker-compose)
 - this way one understands better what steps are taking place during
provisioning.

Kind regards
Juhan







Kontakt Awasum Yannick () kirjutas kuupäeval R, 6.
detsember 2019 kell 04:35:

> Why are you running npm (x) on a non node, non js repo (demo-server) ?
>
> The timeout might be showing a lack of memory problem. What is the
> capacity of your machine?
>
> On Thu, Dec 5, 2019 at 9:40 PM Rohit Jain  wrote:
>
>> Thanks guys!
>>
>>
>>
>> I think I got off the track right at the beginning of *Step 3:
>> Orchestrate Microservices Using The Demo-server*.  It said “… *consider*
>> manually orchestrating …”.  I thought I *needed to* go to
>> https://github.com/vishwasbabu/ProvisioningFineractCN.  That is where it
>> says start ActiveMQ.  Which is why I did.  I abandoned that effort when I
>> realized that “consider” meant optional, and I did not really need to do
>> that, since that whole key generation was getting a bit complicated on
>> Windows 10.  But then ActiveMQ was still running when I proceeded with the
>> rest of the instructions to build.  My bad!
>>
>> Because I had started ActiveMQ, initially demo-server immediately
>> complained about not being able to use port 61616.  In fact, the
>> instructions say that this port should not be in use before starting
>> demo-server.  I guess I did not pay attention to that part until I got that
>> error.  I then stopped ActiveMQ, changed the port 61616 it was using, to
>> 61615, and restarted it (doh!).  Demo-server then ran for a long time.  But
>> then it gave me a slew of *connection refused* errors for port 61616,
>> even though ActiveMQ was not using it, and *not that the port was being
>> used*.
>>
>>
>>
>> Regardless, I stopped ActiveMQ and this time ran with Command II in the
>> documentation.  I did not run into the connection refused error!
>>
>> This time I got some  [DicoverClient-*n*] errors that 
>> c.n.discovery.TimedSupervisorTask
>> – task supervisor timed out
>>
>>
>>
>> But demo-server kept going after those timeouts and has now been running
>> for 3 hours with no message "INFO  o.e.jetty.server.AbstractConnector -
>> StoppedServerConnector@1bdb0376{HTTP/1.1,[http/1.1]}" written to any of
>> the logs as yet.  I guess I should have direct standard out to a log since
>> it does not seem to be capturing everything in the logs and I might have
>> just missed that message.
>>
>>
>>
>> I decided to proceed to step 4 but I get the following when I run npm i …
>>
>> c:\Apps\fineract-cn-demo-server>npm i
>>
>> npm WARN saveError ENOENT: no such file or directory, open
>> 'c:\Apps\fineract-cn-demo-server\package.json'
>>
>> npm notice created a lockfile as package-lock.json. You should commit
>> this file.
>>
>> npm WARN enoent ENOENT: no such file or directory, open
>> 'c:\Apps\fineract-cn-demo-server\package.json'
>>
>> npm WARN fineract-cn-demo-server No description
>>
>> npm WARN fineract-cn-demo-server No repository field.
>>
>> npm WARN fineract-cn-demo-server No README data
>>
>> npm WARN fineract-cn-demo-server No license field.
>>
>>
>>
>> up to date in 0.843s
>>
>> found 0 vulnerabilities
>>
>>
>>
>> c:\Apps\fineract-cn-demo-server>npm run dev
>>
>> npm ERR! code ENOENT
>>
>> npm ERR! syscall open
>>
>> npm ERR! path c:\Apps\fineract-cn-demo-server\package.json
>>
>> npm ERR! errno -4058
>>
>> npm ERR! enoent ENOENT: no such file or directory, open
>> 'c:\Apps\fineract-cn-demo-server\package.json'
>>
>> npm ERR! enoent This is related to npm not 

Re: Fineract build

2019-12-04 Thread Juhan Aasaru
Windows should be fine, you should get everything working on that.
Michael has a little typo, you need to use

./gradlew (or ./gradlew.bat)

insead of "gradle".

You probably have Gradle 5 in your path which is not compatible (run
"gradle --version" to see what version you have).
Also if you absolutely want to use locally installed Gradle instead of
Gradle Wrapper (gradlew)
- sometimes I have done this with IntelliJ not using Gradle Wrapper for
some reason
then you need to download gradle 4.10.3 to your local computer and make
changes to the Path variable so that when you type
"gralde --version" it reports this version number.

Juhan

Kontakt Michael Vorburger () kirjutas kuupäeval N, 5.
detsember 2019 kell 08:39:

> These error messages look like they could be caused by a mismatch in
> Gradle version.
>
> Instead of installing Gradle yourself and using "gradle" as the command,
> try using ./gradlewt to see if that helps?
>
>
> On Wed, Dec 4, 2019 at 2:07 PM Rohit Jain  wrote:
>
>> No changes.  I am following the build guidelines as outlined on that web
>> page.
>>
>>
>>
>> *From:* Victor Romero 
>> *Sent:* Wednesday, December 4, 2019 3:56 PM
>> *To:* dev@fineract.apache.org
>> *Subject:* Re: Fineract build
>>
>>
>>
>> External
>>
>> Hi Rohit,
>>
>>
>>
>> That is not related to Operating System issues.
>>
>>
>>
>> It is Fineract-CN code itself. Have you done any change or is a fresh
>> clone ?
>>
>>
>>
>> Regards
>>
>>
>>
>> Victor
>>
>> El 4 de diciembre de 2019 a las 10:56 AM Rohit Jain 
>> escribió:
>>
>> When I started to build using the instructions on
>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN,
>> I followed the recommended *option 1* in * Step 2: Get Program Code* and
>> ran into some issues when I ran gradle build (remember, I am trying to do
>> this on a Windows laptop – probably not the ideal environment, and perhaps
>> I should find a Linux build environment, although we don’t really use
>> Ubuntu):
>>
>> · I ran into:
>> java.lang.NoClassDefFoundError:
>> org.gradle.api.internal.ClosureBackedAction
>> Found that I needed to add the following in *plugins* to the
>> build.gradle file to resolve that:
>> id "io.spring.dependency-management" version "1.0.8.RELEASE"
>>
>> · However, I then got an error:
>> java.lang.NoClassDefFoundError:
>> io/spring/gradle/dependencymanagement/DependencyManagementExtension
>> Found that I needed to modify the id "org.springframework.boot" in
>> build.gradle *plugins* to version "1.5.21.RELEASE"
>>
>> · Then it looked really promising.  But then I got an error:
>> org.gradle.api.tasks.TaskExecutionException: Execution failed for task
>> ':licenseMain'
>> This was ultimately resolved by adding the following lines to the
>> *license* section of the build.gradle file:
>> skipExistingHeaders true
>> ignoreFailures true
>> and adding the following lines before the license section
>> gradle.startParameter.excludedTaskNames += "licenseMain"
>> gradle.startParameter.excludedTaskNames += "licenseTest"
>>
>>
>>
>> Don’t know how relevant this is to the rest of the community for builds
>> done on Ubuntu, the preferred OS.  So, it is up to you guys to decide
>> whether you want to create a JIRA to rectify some or all of this, or ignore
>> it.
>>
>>
>>
>> Rohit
>>
>>
>>
>>
>


Re: Status of fineract-cn-interoperation

2019-11-27 Thread Juhan Aasaru
Hi!

Marta, thank you for clearing that up.

I created a Jira ticket with two-sub tasks about this matter:
https://issues.apache.org/jira/browse/FINCN-192
One task is what Marta wrote about and the other is bringing the new micro
service up to date with the others.
I wonder if there is anyone here who would be willing to work on those
tasks.

As you can see from Marta's email I already created the apache repository
and imported the code from Marta's repo:
https://github.com/apache/fineract-cn-interoperation

Kind regards
Juhan

Kontakt Marta Jankovics () kirjutas kuupäeval K,
27. november 2019 kell 12:04:

> Hi Ed, Juhan,
>
> I've sent pull requests in March 2019 to several services of Fineract CN.
> These requests should be handled together as all of them are needed to
> handle the interoperability functions.
> The merge process was stopped at some point although I think I answered
> all the open questions there.
>
>
> https://github.com/apache/fineract-cn-interoperation/commits/mojaloop-fineract_1.0
>
> - New interoperability service. This request contains the majority of the
> code changes.
>
> https://github.com/apache/fineract-cn-api/pull/7/commits
>
> https://github.com/apache/fineract-cn-accounting/pull/10/commits
>
> - Some additions to already existing services in order to support
> interoperability. No change of existing functions.
>
> https://github.com/apache/fineract-cn-demo-server/pull/26/commits
>
> - Added build dependencies of the new service.
>
> https://github.com/apache/fineract-cn-fims-web-app/pull/14
>
> - Minor change in the web application to show the tenant user friendly
> name instead of the tenant identifier. Not a must have.
>
> Thanks,
>
> Marta
> On 2019. 11. 27. 8:54, Ed Cable wrote:
>
> Juhan,
>
> Thanks for flagging this and bringing on list. It is very important that
> we bring it up to date as its necessary component to continue integrating
> with ongoing with that Mifos is leading around the payment hub.
>
> These changes were made by the DPC team supported by Mifos through the
> grant from DIAL.
>
> Although this and changes to Fineract 1.x were discussed and worked on
> months back, the changes for Fineract 1.x were only just merged and this
> repo was never moved over.
>
> Can you create a repo under the Apache namespace? Are you then and to
> clone Marta's repository and move code over.
>
> Marta, can you please assist Juhan?
>
> Juhan, it would great to create tickets for the tasks needed to bring this
> up to date and if you have time, to take on some of those.
>
> Cheers,
>
> Ed
>
> On Tue, Nov 26, 2019, 05:58 Juhan Aasaru  wrote:
>
>> Hi!
>>
>> I found from archives that there have been efforts to integrate
>> Fineract-CN with Mojaloop and for this purpose a
>> repository fineract-cn-interoperation has been created.
>>
>> I didn't find it under apache repositories but I found this repo:
>> https://github.com/marta-jankovics/fineract-cn-interoperation
>> (I don't know if it is the correct one)
>>
>> The problem is that since it is not under Apache namespace it hasn't been
>> kept up to date with the latest changes (uploading to Artifactory, MariaDB
>> to Postgres migration, introducing EclipseLink, upgrading Gradle version,
>> building Docker images etc) and thus it has fallen out of loop.
>>
>> I wanted to ask what is the situation with this repository and
>> functionality and should we put some efforts to bring this repository under
>> the Apache hat and bring it up to date so it could be started together with
>> other services.
>>
>> Juhan
>>
>


Status of fineract-cn-interoperation

2019-11-26 Thread Juhan Aasaru
Hi!

I found from archives that there have been efforts to integrate Fineract-CN
with Mojaloop and for this purpose a repository fineract-cn-interoperation
has been created.

I didn't find it under apache repositories but I found this repo:
https://github.com/marta-jankovics/fineract-cn-interoperation
(I don't know if it is the correct one)

The problem is that since it is not under Apache namespace it hasn't been
kept up to date with the latest changes (uploading to Artifactory, MariaDB
to Postgres migration, introducing EclipseLink, upgrading Gradle version,
building Docker images etc) and thus it has fallen out of loop.

I wanted to ask what is the situation with this repository and
functionality and should we put some efforts to bring this repository under
the Apache hat and bring it up to date so it could be started together with
other services.

Juhan


Re: [ANNOUNCE] Juhan Aasaru added to Fineract PMC

2019-11-25 Thread Juhan Aasaru
I everyone!

Thank you for the trust and all the good wishes.

Kind regards
Juhan

Kontakt Santosh Math () kirjutas kuupäeval
E, 25. november 2019 kell 06:24:

> Hi Juhan,
> Congratulations!
>
> On Sun, Nov 24, 2019 at 2:26 AM Courage Angeh 
> wrote:
>
>> Congratulations Juhan. Well deserved.
>>
>> On Sat, Nov 23, 2019 at 2:25 AM Chirag Gupta 
>> wrote:
>>
>>> Congratulations Juhan! Keep up the good work!
>>>
>>> Best
>>> Chirag Gupta
>>>
>>> On Sat, Nov 23, 2019 at 12:50 PM Sanyam Goel 
>>> wrote:
>>>
>>>> Congratulations Juhan!
>>>>
>>>> Best Regards,
>>>> Sanyam
>>>>
>>>> On Sat, Nov 23, 2019 at 9:36 AM Isaac Kamga  wrote:
>>>>
>>>>> Welcome onboard Juhan ! Keep rocking !
>>>>>
>>>>> On Fri, Nov 22, 2019 at 4:49 AM Vishwas Babu (Apache) <
>>>>> vishwasb...@apache.org> wrote:
>>>>>
>>>>>> Hello All,
>>>>>>
>>>>>> It is my pleasure to announce that Juhan Aasaru has accepted our
>>>>>> invitation to join the Fineract PMC.
>>>>>>
>>>>>> Through his work around setting up an artifactory, making
>>>>>> improvements to containerization and creating provisioning scripts, Juhan
>>>>>> has significantly improved the build, deployment and provisioning 
>>>>>> processes
>>>>>> for Fineract CN and made it easier for new developers to get started.
>>>>>>
>>>>>> His nuanced views while weighing in on technical discussions and
>>>>>> willingness to test out and provide feedback on enhancements being worked
>>>>>> on by others has been instrumental in growing our sense of community and
>>>>>> taking Fineract CN closer to an initial release.
>>>>>>
>>>>>> Please join me in thanking Juhan for his varied contributions and in
>>>>>> congratulating him on the additional responsibilities he has been 
>>>>>> entrusted
>>>>>> with.
>>>>>>
>>>>>> Regards,
>>>>>> Vishwas
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>> --
>>>> SANYAM GOEL
>>>> Profile: https://plu.us/sanyam96
>>>> LinkedIn: https://goo.gl/NkmHkf
>>>> Github: https://goo.gl/STw1Rq
>>>>
>>>
>
> --
> Thanks & Regards
>
> Santosh Math
>
> *QA Engineer*
>
> *Conflux Technologies Pvt Ltd <http://www.confluxtechnologies.com/>*
> | *Office*: +91-080-41208662 |
>
> *Address*: #304, 2nd Floor, 7th Main Road, HRBR Layout 1st Block,
> Bengaluru, Karnataka, 560043 INDIA
>


Re: Error when enabling portfolio__v1__khepri during provisioning.

2019-11-19 Thread Juhan Aasaru
Hi Courage!

I tried myself and in order to have a repeatable process I created (and
merged with few minor fixes)
https://github.com/apache/fineract-cn-docker-compose/blob/master/integration_test.sh
I didn't manage yet to complete this however as for some reason the Docker
engine started
failing locally when I tried to provision everything. I try to look more
into this in coming days.
So unfortunately I couldn't yet repeat your problem.

The "portfolio__v1__khepri permission" error suggests that not all the
micro services are registered with Eureka.
If a micro service wants to connect to other micro service it asks Eureka
for the IP/DNS of the other micro service.
Open up Eureka console at http://localhost:8761/ (or http://eureka:8761)
and check which micro-services are registered. All micro services except
provisioner should be there.

Also I have had this error when the provisioning scripts used
wrong hostname for micro services.
So for Postman scripts see steps 02.01, 02.02... for the body of the
scripts as it contains the host of the micro service.

I don't have any ideas about why Flyway is failing.

Juhan

Kontakt Courage Angeh () kirjutas kuupäeval T, 19.
november 2019 kell 18:21:

> Yea, Juhan.
> I am using the latest docker images created 4 weeks ago.
>
> On Tue, Nov 19, 2019 at 2:52 AM Juhan Aasaru  wrote:
>
>> Hi Courage!
>>
>> Did you force Docker Compose to pull the latest images from repository?
>>
>> docker-compose rm -f
>> docker-compose pull
>>
>> Kind regards
>> Juhan
>>
>> Kontakt Courage Angeh () kirjutas kuupäeval E,
>> 18. november 2019 kell 19:34:
>>
>>> Hi Juhan,
>>>
>>> I am trying to do some updates to the fineract-cn-docker-compose bash
>>> scripts. Uhmm... I tried to enable portfolio__v1__khepri permission but
>>> I get this error
>>> `Error while processing command. FlywayException: Unable to obtain Jdbc
>>> connection from DataSource`
>>>
>>> I also tried it using the postman scripts you implemented I get the same
>>> error.
>>> I am not sure what is wrong. Here is the log file:
>>> https://pastebin.com/11vRW2wC for more information.
>>>
>>> P.S I made no changes to the docker configurations.
>>>
>>> Regards,
>>> Courage.
>>>
>>


Re: Building Fineract-CN

2019-11-19 Thread Juhan Aasaru
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 () kirjutas kuupäeval T, 19.
november 2019 kell 18:32:

> Devs
>
> @Vishwas Babu 
>
> 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 
>


Re: Error when enabling portfolio__v1__khepri during provisioning.

2019-11-18 Thread Juhan Aasaru
Hi Courage!

Did you force Docker Compose to pull the latest images from repository?

docker-compose rm -f
docker-compose pull

Kind regards
Juhan

Kontakt Courage Angeh () kirjutas kuupäeval E, 18.
november 2019 kell 19:34:

> Hi Juhan,
>
> I am trying to do some updates to the fineract-cn-docker-compose bash
> scripts. Uhmm... I tried to enable portfolio__v1__khepri permission but I
> get this error
> `Error while processing command. FlywayException: Unable to obtain Jdbc
> connection from DataSource`
>
> I also tried it using the postman scripts you implemented I get the same
> error.
> I am not sure what is wrong. Here is the log file:
> https://pastebin.com/11vRW2wC for more information.
>
> P.S I made no changes to the docker configurations.
>
> Regards,
> Courage.
>


Re: Fineract-CN - Loans cannot be opened

2019-11-01 Thread Juhan Aasaru
Hi Michael!

Thanks for reporting.
There definitely can be unresolved bugs introduced by the
Postgres/EclipseLink migration.
I have found a few myself and fixed them but I haven't checked the loan
side yet so quite possible that there is some bug lurking somewhere.
I now went over (again) the code diff of Postgres migration for Portfolio
micro service (there are not many changed lines) but I didn't spot anything
suspicious.

I suggest you try to increase logging.
You can tweak the logging of containers this way:

1. into "fineract-cn-docker-compose" create subdirectories "node_logs" and
"node_config"

2. into subdirectory "node_config" create logback-provisioner.xml with
contents like this:




/tmp/logs/provisioner.${bySecond}.log


/tmp/logs/archive/provisioner.%d{-MM-dd}_${bySecond}.log
2
200MB


%d{HH:mm:ss.SSS} XABC [%thread] %-5level %logger{36} -
%msg%n








3. to docker-compose.yml add logger.conf to provisioner environment and
mount the directories. For this find:

  portfolio-ms:
image: apache/fineract-cn-portfolio:latest
ports:
  - "2026:2026"
environment:

replace with :

  portfolio-ms:
image: apache/fineract-cn-portfolio:latest
ports:
  - "2026:2026"
volumes:
  - ./node_config:/etc/configs/:ro
  - ./node_logs:/tmp/logs
environment:
  logging.config: "/etc/configs/logback-portfolio.xml"

I hope you get more informative error messages to the file. If you do then
feel free to share here.

Kind regards
Juhan Aasaru


Kontakt Michael E. () kirjutas kuupäeval R, 1.
november 2019 kell 13:51:

> I've been doing some testing with the Fineract-CN,
> using fineract-cn-docker-compose.
>
> In previous testing of Fineract-CN before the postgres migration, I was
> able to create and open loan products for members. However using the latest
> versions of the microservices and provisioning using the scripts provided
> in fineract-cn-docker-compose, I am not ables to open loan cases for
> members.
> I'm able to create members, create deposit and loan products, add these
> products to members, and open the deposit account, but when attempting to
> open the loan product, the portfolio-ms freezes up and doesn't respond to
> any requests until it is restarted.
>
> This is the relevant section from the portfolio-ms log:
>
> [EL Fine]: sql: 2019-11-01
> 11:24:42.54--ServerSession(817490653)--Connection(1699212784)--Thread(Thread[qtp1761217448-17,5,main])--SELECT
> t2.id, t2.a_comment, t2.executed_by, t2.executed_on, t2.case_id,
> t2.task_def_id FROM bastet_cases t3, bastet_c_task_insts t2,
> bastet_p_task_defs t1, bastet_products t0 WHERE (((t0.identifier = ?) AND
> (t3.identifier = ?)) AND (((t1.id = t2.task_def_id) AND (t0.id =
> t1.product_id)) AND (t3.id = t2.case_id)))
> bind => [test, test]
> [EL Finest]: query: 2019-11-01
> 11:24:42.543--UnitOfWork(396538513)--Thread(Thread[qtp1761217448-20,5,main])--Execute
> query ReadAllQuery(referenceClass=TaskDefinitionEntity sql="SELECT t1.id,
> t1.actions, t1.description, t1.four_eyes, t1.identifier, t1.mandatory,
> t1.a_name, t1.product_id FROM bastet_products t0, bastet_p_task_defs t1
> WHERE ((t0.identifier = ?) AND (t0.id = t1.product_id))")
> [EL Finest]: connection: 2019-11-01
> 11:24:42.544--ServerSession(817490653)--Connection(1400896017)--Thread(Thread[qtp1761217448-20,5,main])--Connection
> acquired from connection pool [read].
> [EL Finest]: connection: 2019-11-01
> 11:24:42.544--ServerSession(817490653)--Thread(Thread[qtp1761217448-20,5,main])--reconnecting
> to external connection pool
> [EL Finer]: transaction: 2019-11-01
> 11:24:42.548--UnitOfWork(441609303)--Thread(Thread[qtp1761217448-17,5,main])--release
> unit of work
> [EL Finer]: connection: 2019-11-01
> 11:24:42.548--ClientSession(782248230)--Thread(Thread[qtp1761217448-17,5,main])--client
> released
> [EL Finer]: connection: 2019-11-01
> 11:24:48.267--ServerSession(817490653)--Thread(Thread[qtp1761217448-17,5,main])--client
> acquired: 1594588247
> [EL Finer]: transaction: 2019-11-01
> 11:24:48.268--ClientSession(1594588247)--Thread(Thread[qtp1761217448-17,5,main])--acquire
> unit of work: 1487145812
> [EL Finest]: query: 2019-11-01
> 11:24:48.268--UnitOfWork(1487145812)--Thread(Thread[qtp1761217448-17,5,main])--Execute
> query ReadAllQuery(referenceClass=ProductEntity )
> [EL Finest]: connection: 2019-11-01
> 11:24:48.269--ServerSession(817490653)--Connection(1454951413)--Thread(Thread[qtp1761217448-17,5,main])--Connection
> acquired from connection pool [read].
> [EL Finest]: connection: 2019-11-01
> 11:24:48.269--ServerSession(817490653)--Thread(Thread[qtp1761217448-17,5,main

Re: Usage of Cassandra in Fineract CN

2019-10-25 Thread Juhan Aasaru
1. yes
2. yes

> interpret your comment to be about the standard issue of not getting
these side effects again during disaster recovery.  Correctly understood?
yes

To sum it up - there is a problem (how to recover from a disaster) that is
currently not solved in Fineract but I think it should be.
I created a JIRA ticket for it as well:
https://issues.apache.org/jira/browse/FINCN-187
Anyone is welcome to update the ticket.

Juhan

Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
25. oktoober 2019 kell 13:46:

> Juhan, just so that I interpret you correctly in
>
> "The current problem however is that there are some commands that when
> they get executed,
> they create other commands as a result (when you replay such a command you
> will create a command again - although it exists already)"
>
> These "other commands" can be either of two types:
> 1. Commands that just lead to further state changes in the database and
> that these changes do not lead to other side effects. (The state of which
> we wish to restore after a disaster)
> 2. Commands that not only lead to state changes in the data base, or state
> changes that lead to side effetcts. Examples : Email sent to customer,
> calls to other services that mutate state.
>
> I interpret your comment to be about the standard issue of not getting
> these side effects again during disaster recovery.  Correctly understood?
>
>
> I just want to point to the fact that in an event sourced system this
> problem goes away since the events that are replayed only serve the purpose
> of building up the application state .
>
>
> Best regards Niklas
>
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Thursday, October 24, 2019 6:43 PM
> *To:* Victor Romero
> *Cc:* Dev; Niklas Uhrberg
> *Subject:* Re: Usage of Cassandra in Fineract CN
>
> Hi!
>
> I just recently learned that this design would also help on recovering
> from a disaster.
>
> Cassandra can be easily replicated so the risk of loosing all the
> Cassandra nodes is relatively small.
> And even if that happens you only loose the commands that are not executed
> yet (not a huge problem
> since any command could fail after it is issued).
>
> Postgres can also be replicated but at one point the database (and
> replica) could become corrupt.
> So you restore it from the recent backup but you face the problem that the
> backup is probably at least several hours old.
> To solve the issue you could replay the commands in Cassandra to bring the
> database restored fromt the backup to the lasest state.
>
> The current problem however is that there are some commands that when they
> get executed,
> they create other commands as a result (when you replay such a command you
> will create a command again - although it exists already)
> So there should be a mechanism in place in Fineract-CN to identify such
> commands so one could skip executing them during replay
> (or some other stattegy to deal with this).
>
> Juhan
>
>
> Kontakt Victor Romero () kirjutas
> kuupäeval N, 24. oktoober 2019 kell 17:28:
>
>> Yes it is.
>>
>>
>> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Project+Structure#FineractCNProjectStructure-cassandra
>>
>> El 24 de octubre de 2019 a las 08:11 AM Niklas Uhrberg <
>> niklas.uhrb...@resurs.se> escribió:
>>
>>
>> Hi!
>>
>> I didn't pay much attention to the Cassandra database when looking at
>> Fineract CN, but now I read
>> https://cwiki.apache.org/confluence/display/FINERACT/CQRS+in+Fineract+CN
>> and I conclude from this documentation that the only usage of Cassandra is
>> to persist the commands.
>>
>> Furthermore that one and the same database is used in the processing of
>> the commands ,  i.e. the state changes in the Postgres db as a consequence
>> of a command being processed occur in the same Postgres database used to
>> serve read style requests (since there is only one Postgres db)
>>
>> Is this correctly understood?
>>
>> Best regards Niklas
>>
>>
>>
>>
>> Niklas Uhrberg
>> Konsult
>> IT Development | Loans & Credit
>>
>>
>>
>>
>> Resurs Bank AB
>>
>>
>>
>>
>> Växel: +46 42 38 20 00
>> E-post: niklas.uhrb...@resurs.se
>> Webb: www.resursbank.se
>>
>>
>>
>>
>>
>>
>>
>


Re: Usage of Cassandra in Fineract CN

2019-10-24 Thread Juhan Aasaru
Hi!

I just recently learned that this design would also help on recovering from
a disaster.

Cassandra can be easily replicated so the risk of loosing all the Cassandra
nodes is relatively small.
And even if that happens you only loose the commands that are not executed
yet (not a huge problem
since any command could fail after it is issued).

Postgres can also be replicated but at one point the database (and replica)
could become corrupt.
So you restore it from the recent backup but you face the problem that the
backup is probably at least several hours old.
To solve the issue you could replay the commands in Cassandra to bring the
database restored fromt the backup to the lasest state.

The current problem however is that there are some commands that when they
get executed,
they create other commands as a result (when you replay such a command you
will create a command again - although it exists already)
So there should be a mechanism in place in Fineract-CN to identify such
commands so one could skip executing them during replay
(or some other stattegy to deal with this).

Juhan


Kontakt Victor Romero () kirjutas kuupäeval
N, 24. oktoober 2019 kell 17:28:

> Yes it is.
>
>
> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Project+Structure#FineractCNProjectStructure-cassandra
>
> El 24 de octubre de 2019 a las 08:11 AM Niklas Uhrberg <
> niklas.uhrb...@resurs.se> escribió:
>
>
> Hi!
>
> I didn't pay much attention to the Cassandra database when looking at
> Fineract CN, but now I read
> https://cwiki.apache.org/confluence/display/FINERACT/CQRS+in+Fineract+CN
> and I conclude from this documentation that the only usage of Cassandra is
> to persist the commands.
>
> Furthermore that one and the same database is used in the processing of
> the commands ,  i.e. the state changes in the Postgres db as a consequence
> of a command being processed occur in the same Postgres database used to
> serve read style requests (since there is only one Postgres db)
>
> Is this correctly understood?
>
> Best regards Niklas
>
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
>
> Resurs Bank AB
>
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
>
>
>
>


Re: Tables of individual services not created

2019-10-24 Thread Juhan Aasaru
Hi!

Please locate your hosts file (/etc/hosts for Unix/Mac) and make sure that
following lines arre present:

127.0.0.1 postgres
127.0.0.1 cassandra
127.0.0.1 eureka
127.0.0.1 activemq

Juhan

Kontakt Achia Rolence () kirjutas kuupäeval N, 24.
oktoober 2019 kell 14:27:

> That's the log
>
> https://pastebin.com/iFPmw2w1
>
> On Thu, Oct 24, 2019 at 1:16 PM Courage Angeh 
> wrote:
>
>> It looks like the micro services can’t connect to Cassandra. Maybe
>> Cassandra is not running which could be because your local Cassandra is
>> running therefore using the port docker’s Cassandra is supposed to use.
>> Can I see the log when you run the docker-compose script in
>> external-tools directory?
>>
>> On Thu, Oct 24, 2019 at 5:43 AM Achia Rolence 
>> wrote:
>>
>>> Hi Courage and Juhan,
>>> I started working with the docker approach but had an error running the
>>> provisioner this is the log https://pastebin.com/ZSPg9DLS
>>> Thanks
>>>
>>> On Wed, Oct 23, 2019 at 7:01 PM Courage Angeh 
>>> wrote:
>>>
>>>> Hi Rolence,
>>>>
>>>> Can I provide more logs?.  By that I mean the logs before the errors
>>>> you get.
>>>>
>>>> On Wed, Oct 23, 2019 at 12:33 PM Juhan Aasaru  wrote:
>>>>
>>>>> Hi!
>>>>>
>>>>> One option you could try would be starting the demo server without
>>>>> provisioning and
>>>>> using Postman scripts instead. This way you also understand better
>>>>> what is happening.
>>>>> You find the postman scripts here:
>>>>> https://github.com/apache/fineract-cn-docker-compose
>>>>>
>>>>> And don't forget to update your hosts file (details also on README.md)
>>>>>
>>>>> Juhan
>>>>>
>>>>>
>>>>> Kontakt Achia Rolence () kirjutas kuupäeval
>>>>> K, 23. oktoober 2019 kell 16:50:
>>>>>
>>>>>> Hello Kelvin,
>>>>>> Thanks for the reply. If you check the pastebin error you will see
>>>>>> that every request is forbidden (access denied) whereas the logged in  
>>>>>> user
>>>>>> has the required permissions. A user authentication request is made each
>>>>>> time irrespective of the provided tokens. So given the authentication 
>>>>>> fails
>>>>>> the request also fails.
>>>>>>
>>>>>> On Wed, Oct 23, 2019 at 3:33 PM Achia Rolence 
>>>>>> wrote:
>>>>>>
>>>>>>> Hello Kelvin,
>>>>>>> Thanks for the reply. If you check the pastebin error you will see
>>>>>>> that every request is forbidden (access denied) whereas the logged in  
>>>>>>> user
>>>>>>> has the required permissions. A user authentication request is made each
>>>>>>> time irrespective of the provided tokens. That's the problem.
>>>>>>>
>>>>>>> On Wed, Oct 23, 2019 at 3:09 PM Kelvin Ikome 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Rolence,
>>>>>>>>
>>>>>>>> Assuming everything is set up correctly, the tables are to be
>>>>>>>> created during provisioning.
>>>>>>>>
>>>>>>>> Check if the provisioning process was triggered and do so (trigger
>>>>>>>> it) if not.
>>>>>>>>
>>>>>>>> Kelvin
>>>>>>>>
>>>>>>>> On Wed, Oct 23, 2019 at 3:04 PM Achia Rolence <
>>>>>>>> akarolenc...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>> Thanks for the response. I followed your description above but
>>>>>>>>> after login every post request gives the error message shown in the
>>>>>>>>> pastebin.com   link below. The only
>>>>>>>>>  post request that are successful are those sent to Identity
>>>>>>>>> microservice.
>>>>>>>>> https://pastebin.com/PiqZU69m
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>>
>>>>>>>>> On Wed, Oct 23, 2019 at 11:59 AM Juhan Aasaru 
>>>>>>>&g

Re: Tables of individual services not created

2019-10-23 Thread Juhan Aasaru
Hi!

Make sure you have the latest versions of micro services.
This is important especially if you started to try out Fineract-CN more
than few weeks ago since some of the bugs got fixed quite recently.
To be sure you have the latest code:

1. find the .m2 directory under your user home and delete contents of:
~/.m2/repository/org/apache/fineract/cn

2. Then download the recent dependencies from Artifactory:
cd fineract-cn-demo-server/scripts/dependencies_to_local_maven
mvn package (this brings all the fineract-cn-* dependencies from
Artifactory to your local maven repo)

After you have done that the next step is to make sure you start the apps
in correct fashion. It should be something like this:

java -jar -Ddemoserver.persistent=true -Ddemoserver.provision=true
-Ddemoserver.lite=true -Dcustom.cassandra.contactPoints=localhost:9042
-Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
-Dcassandra.clusterName="datacenter1" -Dcustom.postgresql.host=localhost
-Dcustom.postgresql.user=postgres -Dcustom.postgresql.password=postgres
build/libs/demo-server-0.1.0-BUILD-SNAPSHOT.jar

If this doesn't help then please send more info about what tables do get
created (and use pastebin.com to send your logs).

Kind regards
Juhan

Kontakt Achia Rolence () kirjutas kuupäeval K, 23.
oktoober 2019 kell 11:01:

> Hello fellow devs,
> I'm running Fineract CN in lite mode with just the bare services like
> identity, rhythm, office and customer. The tables for customers and office
> services are not being created. Any help is much appreciated.
> Thanks
>


Re: Fineract CN public Docker images are now available

2019-10-21 Thread Juhan Aasaru
Hi Niklas,

Provisioner micro service is the only one that creates any tables on
startup.
Rhythm (and any other micro service) waits until you tell Provisioner what
you want to do.

khepri_beats is application-specific table (it is kept in medatadata
database - called 'seshat' in Demo Server and Docker scripts).
So this table is created when you tell provisioner to create the
application (step 02.02 in latest Postman scripts)
as Provisioner calls Rhythm then. After that has happened you shouldn't see
any more errors about 'khepri_beats' in the logs.

So the answer to your question is - khepri_beats doesn't exists until you
have created Rhythm application using Provisioner.

Most of the other tables (but not khepri_beats) are tenant-specific and
these are created when you assing application to tenant
(and they are created into the tenant-specific database - this is called
'playground' in the examples).

Kind regards
Juhan

Kontakt Niklas Uhrberg () kirjutas kuupäeval E,
21. oktoober 2019 kell 10:14:

> OK, sounds fine.
>
> Does this mean that if if the rhythm service is started (and everything
> works) the relation khepri_beats will indeed exist?
>
> /Niklas
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Friday, October 18, 2019 4:33 PM
> *To:* Dev
> *Subject:* Re: Fineract CN public Docker images are now available
>
> Hi!
>
> I just wanted to let you know that I have fixed the bugs that didn't let
> to provision the system fully.
>
> ERROR: relation "khepri_beats" does not exist - I updated the code to
> catch this exception (type of exception had changed
> by migration to EclipseLink) but you will still see the error in the logs
> until you have initialized rhythm micro service
> (the missing table is created during initialization).
>
> Kind regards
> Juhan
>
>
> Juhan
>
>
> Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
> 27. september 2019 kell 15:53:
>
>> Great, thanks!
>>
>> BR Niklas
>>
>>
>>
>> Niklas Uhrberg
>> Konsult
>> IT Development | Loans & Credit
>>
>>
>>
>> Resurs Bank AB
>>
>>
>>
>> Växel: +46 42 38 20 00
>> E-post: niklas.uhrb...@resurs.se
>> Webb: www.resursbank.se
>>
>>
>>
>> --
>> *From:* Juhan Aasaru [aas...@gmail.com]
>> *Sent:* Friday, September 27, 2019 1:46 PM
>> *To:* Dev
>> *Subject:* Re: Fineract CN public Docker images are now available
>>
>> Great that you got a workaround in place for your issue.
>>
>> You can find the details about what you can achieve (and what doesn't yet
>> work) with current Postman scripts
>> from my recent mail to this list:
>>
>> https://lists.apache.org/thread.html/%3ccahlxatte-nx1-m1leudcjztoqv-oop0pmttdn8+i0zjbkwu...@mail.gmail.com%3E
>> From the mail you find what services need to be running.
>>
>> As you will find out there are still bugs that don't let to provision the
>> system fully.
>>
>> Regards
>> Juhan
>>
>>
>> Kontakt Niklas Uhrberg () kirjutas kuupäeval
>> R, 27. september 2019 kell 14:05:
>>
>>> OK, thanks.
>>>
>>> I was able to reproduce the behaviour that the services with locations
>>> in the nginx.conf have to be up and running. Also, as you confirm, that I
>>> can start services individually using docker-compose.
>>>
>>> I have been able to run some Postman requests and log in to fims-web-app
>>> using the mifos user. First goal achieved :=)
>>>
>>> Question: What set of services must be running to complete all of the
>>> Postman requests?
>>>
>>>
>>> BR Niklas
>>>
>>>
>>>
>>> Niklas Uhrberg
>>> Konsult
>>> IT Development | Loans & Credit
>>>
>>>
>>>
>>> Resurs Bank AB
>>>
>>>
>>>
>>> Växel: +46 42 38 20 00
>>> E-post: niklas.uhrb...@resurs.se
>>> Webb: www.resursbank.se
>>>
>>>
>>>
>>> --
>>> *From:* Juhan Aasaru [aas...@gmail.com]
>>> *Sent:* Friday, September 27, 2019 12:59 PM
>>> *To:* Dev
>>> *Subject:* Re: Fineract CN public Docker images are now available
>>>
>>> Hi!
>>>
>>> I have the khepri_beats error as well. I h

Re: Should we archive MariaDB and Data-jpa repositories ?

2019-10-21 Thread Juhan Aasaru
Hi!

I agree with Michael on this.
We have very limited resources - let's spend them on work that gives back
the most value.

Also we should keep in mind that if we add complexity to the system the
slower the development speed is going to be.
And more complexity sets the bar higher for any newcomer to come in and
start contributing.

fineract-cn-data-jpa is not used by any library so I think we should
archive this as well.

Also archiving repository doesn't mean it is deleted. If we change our mind
later then we can always unarchive it
at any point.

Juhan

Kontakt Michael Vorburger () kirjutas kuupäeval P, 20.
oktoober 2019 kell 14:31:

> On Sun, 20 Oct 2019, 03:03 Isaac Kamga,  wrote:
>
>> Happy weekend fineracters,
>>
>> After migrating our RDBMS from MariaDB to PostgreSQL, Michael (CC'ed
>> here) suggested we stick to one RDBMS in this discussion [1]
>>
>
> so my PoV on this is just that in any universe where resources are limited
> (such as ours, excluding possible parallel universes), focusing energies
> e.g. on a single FLOSS DB makes sense.
>
> I'm sure both MySQL (MariaDB really, but that's another discussion..) and
> Postgres are both great, with the proper tuning - which I would focus on
> doing for one of them, not twice.
>
> which is different from the suggestion from Ed Cable and Vishwas Babu
>> about using a different RDBMS for each profile/environment.
>>
>> I thought we should make a community-driven decision on this as it would
>> lead to us either archiving fineract-cn-mariadb [2] repository or not [3].
>>
>> The fineract-cn-data-jpa [4] repository does not appear very useful ?
>> Should it be archived too ?
>>
>> Cheers,
>> Isaac Kamga.
>>
>> [1]
>> https://issues.apache.org/jira/browse/FINCN-26?focusedCommentId=16951585=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16951585
>> [2] https://github.com/apache/fineract-cn-mariadb/pull/9
>> [3]
>> https://github.com/apache/fineract-cn-mariadb/pull/9#issuecomment-541491341
>> [4] https://github.com/apache/fineract-cn-data-jpa
>>
>


I created stabilisation branch 0.1.x for Fineract-CN

2019-10-20 Thread Juhan Aasaru
Hi!

I fixed some bugs and finally managed to fully provision the system. For
this there are now 80+ Postman requests under fineract-cn-docker-compose
project. Feel free to test and give feedback.

I created stabilisation branches '0.1.x' to each of the repositories
(including libraries). Travis builds and uploads artifacts built from these
branches into a separate location in Artifactory. My idea is that we only
merge bugfixes (tested at 'develop' branches) to '0.1.x' branches. We never
merge 0.1.x back to develop.

Stabilisation branches are good for two things:
1) I think we are quite near to releasing the first official version of
Fineract since most of the issues in [1] are resolved. There are only a few
things that by my understanding can be solved without much coding (by my
understanding we just need to declare somewhere that we use binary version
of JUnit (licensed under Eclipse Public License v1.0) and statements like
that for other libraries with similar licenses - correct me if I'm wrong).
2) if anything breaks on 'develop' branch at any time then it is possible
for anyone to use branch 0.1.x that is stable

When we are ready to create the first version we just need to tag the
repostitories (we could start with milestone version 0.1.0-M1 for instance).

[1]
https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Compliance+Report

Kind regards
Juhan


Re: Fineract CN public Docker images are now available

2019-10-18 Thread Juhan Aasaru
Hi!

I just wanted to let you know that I have fixed the bugs that didn't let to
provision the system fully.

ERROR: relation "khepri_beats" does not exist - I updated the code to catch
this exception (type of exception had changed
by migration to EclipseLink) but you will still see the error in the logs
until you have initialized rhythm micro service
(the missing table is created during initialization).

Kind regards
Juhan


Juhan


Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
27. september 2019 kell 15:53:

> Great, thanks!
>
> BR Niklas
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Friday, September 27, 2019 1:46 PM
> *To:* Dev
> *Subject:* Re: Fineract CN public Docker images are now available
>
> Great that you got a workaround in place for your issue.
>
> You can find the details about what you can achieve (and what doesn't yet
> work) with current Postman scripts
> from my recent mail to this list:
>
> https://lists.apache.org/thread.html/%3ccahlxatte-nx1-m1leudcjztoqv-oop0pmttdn8+i0zjbkwu...@mail.gmail.com%3E
> From the mail you find what services need to be running.
>
> As you will find out there are still bugs that don't let to provision the
> system fully.
>
> Regards
> Juhan
>
>
> Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
> 27. september 2019 kell 14:05:
>
>> OK, thanks.
>>
>> I was able to reproduce the behaviour that the services with locations in
>> the nginx.conf have to be up and running. Also, as you confirm, that I can
>> start services individually using docker-compose.
>>
>> I have been able to run some Postman requests and log in to fims-web-app
>> using the mifos user. First goal achieved :=)
>>
>> Question: What set of services must be running to complete all of the
>> Postman requests?
>>
>>
>> BR Niklas
>>
>>
>>
>> Niklas Uhrberg
>> Konsult
>> IT Development | Loans & Credit
>>
>>
>>
>> Resurs Bank AB
>>
>>
>>
>> Växel: +46 42 38 20 00
>> E-post: niklas.uhrb...@resurs.se
>> Webb: www.resursbank.se
>>
>>
>>
>> --
>> *From:* Juhan Aasaru [aas...@gmail.com]
>> *Sent:* Friday, September 27, 2019 12:59 PM
>> *To:* Dev
>> *Subject:* Re: Fineract CN public Docker images are now available
>>
>> Hi!
>>
>> I have the khepri_beats error as well. I have logged it in Jira
>> https://issues.apache.org/jira/browse/FINCN-177
>> but there has nobody been available who would be able to fix this or
>> provide help how it should work.
>> Due to some strage Gradle error I cannot run Rhythm in IntelliJ IDEA
>> either to debug it. So I'm currently stuck with it as well.
>>
>> You may start services one by one as long as you use docker-compose for
>> it (an not running images directly).
>>
>> As I don't experience "host not found in upstream" error myself I cannot
>> help you with this.
>> You could log a ticket about this in Jira and don't forget to add Docker
>> version and the platform (Linux, Windows, Mac) you are using.
>> You could also try the IP workaround I described earlier.
>> Or commenting out the services you don't start (as you do now) is also a
>> valid workaround of course.
>>
>> Juhan
>>
>>
>>
>> Kontakt Niklas Uhrberg () kirjutas kuupäeval
>> R, 27. september 2019 kell 13:00:
>>
>>> Thanks for the reply!
>>>
>>> Yes, I was trying to start the services one by one and was unaware that
>>> this might have consequences for the networking. (The reason for starting
>>> them one by one is simply that I wanted to monitor system memory
>>> incrementally , I have only 8 GB )
>>>
>>> Other than that, I did already follow the instructions and I believe
>>> successfully.
>>> I can see that the provisioner has created a database in Postgres.
>>>
>>> Now I have started the minimal set of services with only Identity,
>>> Rhythm, Customer and fims-web-app. I can point my browser to localhost:
>>> and see the sign-in page.
>>> I actually run an image for fims-web-app where only location for
>>> Identity and Customer exist.
>>>
>>> I will also try the start these one by one instead of in one
>>> docker-compose up , and 

Re: Member deposit account stuck in PENDING

2019-10-18 Thread Juhan Aasaru
Hi!

I have managed to solve this problem, please update all micro services to
develop branch (or force docker to pull latest images) and let me know.
The issue was that some micro services (like accounting) were creating
tenant-specific tables to schema seshat.

Strangely I cannot close the Jira issue
https://issues.apache.org/jira/browse/FINCN-174 myself nor can I assign it
to myself.
If you manage to assign it to me then I can close it.

Juhan


Kontakt Ivan Bondarenko () kirjutas kuupäeval E, 9.
september 2019 kell 09:46:

> Hi, Courage!
> I checked permissions and the user has all of them.
> I can update deposit account (add beneficiary) but the member deposit is
> sill in status PENDING.
> I have just created jira issue.
> https://issues.apache.org/jira/browse/FINCN-174
>
> Thank you for your help.
> Ivan
>
>
> пт, 6 сент. 2019 г. в 22:04, Courage Angeh :
>
>> Ivan,
>>
>> Make sure your logged-in user has the necessary permissions to activate
>> the deposit account.
>>
>> On Fri, Sep 6, 2019, 1:58 PM Awasum Yannick  wrote:
>>
>>> Read The User Manual:
>>> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+Users+Guide
>>>
>>> if you still cant solve it, then create a JIRA ticket and send in a PR
>>> with a fix.
>>>
>>> Anyone else willing to help Ivan?
>>>
>>>
>>> On Fri, Sep 6, 2019 at 6:53 PM Ivan Bondarenko 
>>> wrote:
>>>
 Thank you, Awasum!

 I created user with all permissions.
 Unfortunately click on SHOW leads to third screenshot from my previous
 email, and click on edit to the second.

 Thanks,
 Ivan

 пт, 6 сент. 2019 г. в 19:30, Awasum Yannick :

> Hi,
>
> Here is a user manual for Fineract CN using fims web app:
> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+Users+Guide
>
> What user are you currently using? operator? Create a new user and
> give it all permissions and try again. Click on SHOW under the deposit
> account and you should be able to see a screen which gives you
> possibilities to enable a deposit account.
>
> I hope this helps. I have not used Cn in a long time. But the user
> manual should guide you.
>
>
> On Fri, Sep 6, 2019 at 5:17 PM Ivan Bondarenko 
> wrote:
>
>>
>> I use fineract-cn.
>> Unfortunately I can't find any similar issue in archive of listserv
>> messages.
>> Reproducing steps is really simple -
>>
>>1. create member
>>2. create deposit product
>>3. add member deposit account
>>
>>
>> I added screenshots with current state to attachment
>>
>> I use following service versions
>> service_name: "deposit-account-management"
>> service_version: "20190603.195152-3"
>>
>> service_name: "portfolio"
>> service_version: "20190820.134453-4"
>>
>> service_name: "accounting"
>> service_version: "20190821.183211-5"
>>
>> service_name: "customer"
>> service_version: "20190603.200129-3"
>>
>> service_name: "office"
>> service_version: "20190820.133551-6"
>>
>> But I had the same problem on fineract-cn demo-server.
>>
>> Thanks,
>> Ivan
>>
>> пт, 6 сент. 2019 г. в 18:31, James Dailey :
>>
>>> Hi Ivan -
>>>
>>> You should read
>>> https://cwiki.apache.org/confluence/display/FINERACT/FAQ
>>> and specifically
>>>
>>> https://cwiki.apache.org/confluence/display/FINERACT/Getting+Help+with+Issue?
>>>
>>> reproduced here:
>>>
>>> If you are new to the project and need help getting the system up
>>> and running, or find what you think is an error, or find something in 
>>> the
>>> set up that you don't understand.
>>> Step-by-step guide
>>>
>>> This is an open source community, meaning that we rely on people to
>>> communicate fully when the find and issue and by the same token to do as
>>> much as they can to fix it and document it.
>>>
>>>1. You've found an error - or face an issue getting the system
>>>running
>>>2. Write down the steps that you've taken
>>>3. Go to the online FAQs and README files and wiki pages to see
>>>if someone else has documented the solution
>>>4. Go to the tickets and search for a similar issue
>>>5. Go to the archive of listserv messages and search for a
>>>similar issue
>>>6. If you find the solution write up is adequate, give a shout
>>>out to the author
>>>7. If you don't find the solution, THEN
>>>   1. Describe your problem :  "I'm trying to  " and "I
>>>   cannot..."
>>>   2. Describe the steps you've taken to resolve the issue
>>>   3. Describe the version of the software (or software) that
>>>   you are using
>>>   4. Describe the system set up on your device or your cloud
>>>   account (I'm using a local 

Fineract-CN hackathons at ApacheCon Berlin

2019-10-17 Thread Juhan Aasaru
Hi!

I set up two Fineract-CN topics on two different days at ApacheCon Berlin.
Anyone participating ApacheCon - you are most welcome to join in. More info:
https://cwiki.apache.org/confluence/display/COMDEV/Hackathon

Kind regards
Juhan


Re: Fineract CN public Docker images are now available

2019-09-27 Thread Juhan Aasaru
Great that you got a workaround in place for your issue.

You can find the details about what you can achieve (and what doesn't yet
work) with current Postman scripts
from my recent mail to this list:
https://lists.apache.org/thread.html/%3ccahlxatte-nx1-m1leudcjztoqv-oop0pmttdn8+i0zjbkwu...@mail.gmail.com%3E
>From the mail you find what services need to be running.

As you will find out there are still bugs that don't let to provision the
system fully.

Regards
Juhan


Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
27. september 2019 kell 14:05:

> OK, thanks.
>
> I was able to reproduce the behaviour that the services with locations in
> the nginx.conf have to be up and running. Also, as you confirm, that I can
> start services individually using docker-compose.
>
> I have been able to run some Postman requests and log in to fims-web-app
> using the mifos user. First goal achieved :=)
>
> Question: What set of services must be running to complete all of the
> Postman requests?
>
>
> BR Niklas
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Friday, September 27, 2019 12:59 PM
> *To:* Dev
> *Subject:* Re: Fineract CN public Docker images are now available
>
> Hi!
>
> I have the khepri_beats error as well. I have logged it in Jira
> https://issues.apache.org/jira/browse/FINCN-177
> but there has nobody been available who would be able to fix this or
> provide help how it should work.
> Due to some strage Gradle error I cannot run Rhythm in IntelliJ IDEA
> either to debug it. So I'm currently stuck with it as well.
>
> You may start services one by one as long as you use docker-compose for it
> (an not running images directly).
>
> As I don't experience "host not found in upstream" error myself I cannot
> help you with this.
> You could log a ticket about this in Jira and don't forget to add Docker
> version and the platform (Linux, Windows, Mac) you are using.
> You could also try the IP workaround I described earlier.
> Or commenting out the services you don't start (as you do now) is also a
> valid workaround of course.
>
> Juhan
>
>
>
> Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
> 27. september 2019 kell 13:00:
>
>> Thanks for the reply!
>>
>> Yes, I was trying to start the services one by one and was unaware that
>> this might have consequences for the networking. (The reason for starting
>> them one by one is simply that I wanted to monitor system memory
>> incrementally , I have only 8 GB )
>>
>> Other than that, I did already follow the instructions and I believe
>> successfully.
>> I can see that the provisioner has created a database in Postgres.
>>
>> Now I have started the minimal set of services with only Identity,
>> Rhythm, Customer and fims-web-app. I can point my browser to localhost:
>> and see the sign-in page.
>> I actually run an image for fims-web-app where only location for Identity
>> and Customer exist.
>>
>> I will also try the start these one by one instead of in one
>> docker-compose up , and also add locations for the other services to the
>> nginx.conf file to determine if this is possible.
>>
>> I do get one error that I believe you can help me with , Rhytm logs:
>>
>> Internal Exception: org.postgresql.util.PSQLException: ERROR: relation
>> "khepri_beats" does not exist
>>
>>
>> A have not done any provisioning except for just running provisioner.
>>
>> BR Niklas
>>
>>
>>
>> Niklas Uhrberg
>> Konsult
>> IT Development | Loans & Credit
>>
>>
>>
>> Resurs Bank AB
>>
>>
>>
>> Växel: +46 42 38 20 00
>> E-post: niklas.uhrb...@resurs.se
>> Webb: www.resursbank.se
>>
>>
>>
>> --
>> *From:* Juhan Aasaru [aas...@gmail.com]
>> *Sent:* Friday, September 27, 2019 11:00 AM
>> *To:* Dev
>> *Subject:* Re: Fineract CN public Docker images are now available
>>
>> Hi Niklas!
>>
>> It seems you are trying to start services individually for which you
>> would need to create docker networks first (I haven't tested this way).
>>
>> I suggest following the steps here:
>>
>> https://github.com/apache/fineract-cn-docker-compose#start-external-tools-database-cassandra-etc
>> basically the instructions tell you to do the following:
>>
&g

Re: Fineract CN public Docker images are now available

2019-09-27 Thread Juhan Aasaru
Hi!

I have the khepri_beats error as well. I have logged it in Jira
https://issues.apache.org/jira/browse/FINCN-177
but there has nobody been available who would be able to fix this or
provide help how it should work.
Due to some strage Gradle error I cannot run Rhythm in IntelliJ IDEA either
to debug it. So I'm currently stuck with it as well.

You may start services one by one as long as you use docker-compose for it
(an not running images directly).

As I don't experience "host not found in upstream" error myself I cannot
help you with this.
You could log a ticket about this in Jira and don't forget to add Docker
version and the platform (Linux, Windows, Mac) you are using.
You could also try the IP workaround I described earlier.
Or commenting out the services you don't start (as you do now) is also a
valid workaround of course.

Juhan



Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
27. september 2019 kell 13:00:

> Thanks for the reply!
>
> Yes, I was trying to start the services one by one and was unaware that
> this might have consequences for the networking. (The reason for starting
> them one by one is simply that I wanted to monitor system memory
> incrementally , I have only 8 GB )
>
> Other than that, I did already follow the instructions and I believe
> successfully.
> I can see that the provisioner has created a database in Postgres.
>
> Now I have started the minimal set of services with only Identity, Rhythm,
> Customer and fims-web-app. I can point my browser to localhost: and see
> the sign-in page.
> I actually run an image for fims-web-app where only location for Identity
> and Customer exist.
>
> I will also try the start these one by one instead of in one
> docker-compose up , and also add locations for the other services to the
> nginx.conf file to determine if this is possible.
>
> I do get one error that I believe you can help me with , Rhytm logs:
>
> Internal Exception: org.postgresql.util.PSQLException: ERROR: relation
> "khepri_beats" does not exist
>
>
> A have not done any provisioning except for just running provisioner.
>
> BR Niklas
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Friday, September 27, 2019 11:00 AM
> *To:* Dev
> *Subject:* Re: Fineract CN public Docker images are now available
>
> Hi Niklas!
>
> It seems you are trying to start services individually for which you would
> need to create docker networks first (I haven't tested this way).
>
> I suggest following the steps here:
>
> https://github.com/apache/fineract-cn-docker-compose#start-external-tools-database-cassandra-etc
> basically the instructions tell you to do the following:
>
> 1. git clone https://github.com/apache/fineract-cn-docker-compose.git
> 2. cd fineract-cn-docker-compose.git
>
> now use several terimals in parallel:
> With terminal #1:
> 3. cd external-tools
> 4. docker-compose up
> Wait for services to start and then with terminal #2:
> 5. docker-compose up provisioner-ms
> Wait for the application to start and then with terminal #3 start set of
> micro services.
> The minimum amount would be Identity, Rhythm, Fims-web-app and one or both
> of Customer and Office
>
> I usually start this list to run Postman provisioning requests:
> docker-compose up rhythm-ms identity-ms office-ms customer-ms portfolio-ms
> accounting-ms deposit-ms fims-web-app
>
> together with provisioner and external services this is pretty much the
> maximum that my 16gb mac can handle.
>
> Juhan
>
>
>
>
> Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
> 27. september 2019 kell 11:47:
>
>> Thanks for the response (and welcome) Juhan!
>>
>> I did the following:
>>
>> 1. Start the services in external tools
>> 2. Try to start fims-web-app : This fails with the message "...host not
>> found in upstream "identity-ms"..."
>> 3. Note that identity-ms is the first location config in
>> fineract-cn-fims-web-app/scripts/nginx/docker.nginx.conf
>> 4. Start the identity-ms
>> 5. Try to start fims-web-app againg : Now it fails with "host not
>> found in upstream "office-ms""
>> 6. Note that office-ms is the second location in docker.nginx.conf
>>
>> and so on.
>>
>> Does this mean that fims-web-app requires all the services listed in the
>> docker.ngix-conf have to be up and running?
>>
>> I did change to the new image you bui

Re: Fineract CN public Docker images are now available

2019-09-27 Thread Juhan Aasaru
Hi Niklas!

It seems you are trying to start services individually for which you would
need to create docker networks first (I haven't tested this way).

I suggest following the steps here:
https://github.com/apache/fineract-cn-docker-compose#start-external-tools-database-cassandra-etc
basically the instructions tell you to do the following:

1. git clone https://github.com/apache/fineract-cn-docker-compose.git
2. cd fineract-cn-docker-compose.git

now use several terimals in parallel:
With terminal #1:
3. cd external-tools
4. docker-compose up
Wait for services to start and then with terminal #2:
5. docker-compose up provisioner-ms
Wait for the application to start and then with terminal #3 start set of
micro services.
The minimum amount would be Identity, Rhythm, Fims-web-app and one or both
of Customer and Office

I usually start this list to run Postman provisioning requests:
docker-compose up rhythm-ms identity-ms office-ms customer-ms portfolio-ms
accounting-ms deposit-ms fims-web-app

together with provisioner and external services this is pretty much the
maximum that my 16gb mac can handle.

Juhan




Kontakt Niklas Uhrberg () kirjutas kuupäeval R,
27. september 2019 kell 11:47:

> Thanks for the response (and welcome) Juhan!
>
> I did the following:
>
> 1. Start the services in external tools
> 2. Try to start fims-web-app : This fails with the message "...host not
> found in upstream "identity-ms"..."
> 3. Note that identity-ms is the first location config in
> fineract-cn-fims-web-app/scripts/nginx/docker.nginx.conf
> 4. Start the identity-ms
> 5. Try to start fims-web-app againg : Now it fails with "host not
> found in upstream "office-ms""
> 6. Note that office-ms is the second location in docker.nginx.conf
>
> and so on.
>
> Does this mean that fims-web-app requires all the services listed in the
> docker.ngix-conf have to be up and running?
>
> I did change to the new image you build, but I get the same behaviour.
> I did not try the work around yet, since the behaviour of fims-web-app
> seems to depend on which services are up and running.
>
> The memory on my machine is a bit limited so running all the services
> listed in the docker.nginx.conf is unrealistic.
> Question: Does fims-web-app need all the services only considering the
> functionality?
>
>
> BR Niklas
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Thursday, September 26, 2019 9:50 PM
> *To:* Dev
> *Subject:* Re: Fineract CN public Docker images are now available
>
> Hi Niklas!
>
> Welcome to the mailing list!
>
> I haven't experienced this issue myself but googling the error
> suggested that there might be a bug with how some docker images resolve DNS
> on some platforms.
>
> I updated the Dockerfile of fims-web-app to use the latest public images
> in hope that this issue is fixed in the newest version.
> If you have time test it out by replacing inside root docker-compose of
> fineract-cn-docker-compose
>
> Search this:
>
>   fims-web-app:
> image: apache/fineract-cn-fims-web-app:latest
>
> Replace with:
>
>   fims-web-app:
> image: aasaru/fineract-cn-fims-web-app:latest
>
> My image is built from this PR:
> https://github.com/apache/fineract-cn-fims-web-app/pull/21/files
>
> If it doesn't work then you could also try a workaround.
> In
> https://github.com/apache/fineract-cn-fims-web-app/blob/develop/scripts/nginx/docker.nginx.conf
> replace DNS names of micro services with IP addresses taken from
>
> https://github.com/apache/fineract-cn-docker-compose/blob/master/env_variables
> for example replace "office-ms" with 172.16.238.23 and so on
> and then build a new Docker image and use that instead of the public one.
>
> Regards
> Juhan
>
> Kontakt Niklas Uhrberg () kirjutas kuupäeval N,
> 26. september 2019 kell 18:47:
>
>> Hi!
>>
>> This is my first interaction in the mailing list :=)
>>
>> Firstly, thank's for the great job with containerization and the
>> documentation.
>>
>> I have followed the documentation and things seem to work nicely (some
>> errors during startup of some services, but I don't yet know if they are
>> fatal).
>>
>> However, I cannot start the fims-web-app, see the following from my
>> terminal:
>>
>> niklas@niklas-Latitude-E7440:~/git/fineract-clone/fineract-cn-docker-compose$
>> docker-compose up fims-web-app
>> WAR

Allow customer self-service on Fineract-CN

2019-09-26 Thread Juhan Aasaru
Hi!

I would like to raise a separate thread regarding customers logging in to
fineract-cn on their own behalf
(to provide customer self-service). Vishwas wrote earlier in another thread:
> AFAIK, you cannot do the same on the current micro-services.
> The Mifos initiative has another project (Customer Self Service API
Gateway)
> which allows customer self service by maintaining separate credentials
for each customer.
> After the customer has been authenticated and authorized at the gateway,
> it interfaces with Fineract-CN using a system / back-office user
credential .

I didn't find such a project, I think something like this only exists for
Fineract 1.x
But even if it exists the described design sounds more like a workaround or
a "hack"
- something that is done to add the functionality to an existing system.

Since Fineract-CN is a new platform and it has all the building blocks it
should make customer a
First-Class citizen [ https://en.wikipedia.org/wiki/First-class_citizen ]
meaning the customer
would represent himself as a user and all the privileges checking systems
would
make sure the customer is only able to obtain information about himself.

I know it adds a lot of complexity (to alredy complex world) but I was
wondering if
this question has risen earlier and if there have been any design thoughts
how it should
be implemented (or why it was decided not to implement it).

I see Fineract 1.x /MifosX has a nice analysis document about customer
self-service here
https://cwiki.apache.org/confluence/display/FINERACT/Customer+Self-Service
I wonder if something exists for Fineract-CN as well.
Or if not how could we come up with a similar document how it should be
once implemented.

Regards
Juhan


Re: Fineract CN public Docker images are now available

2019-09-26 Thread Juhan Aasaru
Hi Niklas!

Welcome to the mailing list!

I haven't experienced this issue myself but googling the error
suggested that there might be a bug with how some docker images resolve DNS
on some platforms.

I updated the Dockerfile of fims-web-app to use the latest public images
in hope that this issue is fixed in the newest version.
If you have time test it out by replacing inside root docker-compose of
fineract-cn-docker-compose

Search this:

  fims-web-app:
image: apache/fineract-cn-fims-web-app:latest

Replace with:

  fims-web-app:
image: aasaru/fineract-cn-fims-web-app:latest

My image is built from this PR:
https://github.com/apache/fineract-cn-fims-web-app/pull/21/files

If it doesn't work then you could also try a workaround.
In
https://github.com/apache/fineract-cn-fims-web-app/blob/develop/scripts/nginx/docker.nginx.conf
replace DNS names of micro services with IP addresses taken from
https://github.com/apache/fineract-cn-docker-compose/blob/master/env_variables
for example replace "office-ms" with 172.16.238.23 and so on
and then build a new Docker image and use that instead of the public one.

Regards
Juhan

Kontakt Niklas Uhrberg () kirjutas kuupäeval N,
26. september 2019 kell 18:47:

> Hi!
>
> This is my first interaction in the mailing list :=)
>
> Firstly, thank's for the great job with containerization and the
> documentation.
>
> I have followed the documentation and things seem to work nicely (some
> errors during startup of some services, but I don't yet know if they are
> fatal).
>
> However, I cannot start the fims-web-app, see the following from my
> terminal:
>
> niklas@niklas-Latitude-E7440:~/git/fineract-clone/fineract-cn-docker-compose$
> docker-compose up fims-web-app
> WARNING: Some services (identity-ms, provisioner-ms, rhythm-ms) use the
> 'deploy' key, which will be ignored. Compose does not support 'deploy'
> configuration - use `docker stack deploy` to deploy to a swarm.
> Starting fineract-cn-docker-compose_fims-web-app_1 ... done
> Attaching to fineract-cn-docker-compose_fims-web-app_1
> fims-web-app_1  | 2019/09/26 15:38:04 [emerg] 1#1: host not found in
> upstream "office-ms" in /etc/nginx/nginx.conf:34
> fims-web-app_1  | nginx: [emerg] *host not found in upstream
> "office-ms" in /etc/nginx/nginx.conf:34*
> fineract-cn-docker-compose_fims-web-app_1 exited with code 1
>
>
> Please let me know how I can remedy this, if you have an idea about what
> is happening.
>
> BR Niklas
>
>
>
>
>
>
> Niklas Uhrberg
> Konsult
> IT Development | Loans & Credit
>
>
>
> Resurs Bank AB
>
>
>
> Växel: +46 42 38 20 00
> E-post: niklas.uhrb...@resurs.se
> Webb: www.resursbank.se
>
>
>
> --
> *From:* Juhan Aasaru [aas...@gmail.com]
> *Sent:* Sunday, September 15, 2019 8:56 AM
> *To:* Dev
> *Subject:* Fineract CN public Docker images are now available
>
> Hi!
>
> I have completed seting up public DockerHub images for all Fineract-CN
> applications and also updated Docker-Compose scripts to run them. Docker
> images are automatically built and uploaded to:
> https://hub.docker.com/r/apache/fineract-cn-
>
> So if anyone wants to try out Fineract-CN at their own computer then there
> is one command to start up Postgres, Cassandra ActiveMQ and another command
> to start up a set of Fineract CN micro services like this:
>
> docker-compose up provisioner-ms identity-ms office-ms customer-ms
> accounting-ms fims-web-app
>
> Documentation is here:
> *
> https://cwiki.apache.org/confluence/display/FINERACT/DockerHub+images#DockerHubimages-RunningwithDockerCompose
> * https://github.com/apache/fineract-cn-docker-compose
>
> Thank you Awasum, Courage, Vishwas and Michael for all the help and
> previous work.
>
> Following repositories:
> * https://github.com/openMF/fineract-cn-containers
> * https://github.com/vishwasbabu/ProvisioningFineractCN
> can now be archived as I have defeloped furter the work there and the
> outcome is now available here:
> https://github.com/apache/fineract-cn-docker-compose
>
> Kind regards
> Juhan
>
>


Re: Problem finishing Postman-based provisioning scripts for fineract-cn

2019-09-25 Thread Juhan Aasaru
Thanks Courage and Vishwas for the answers this far.
As we don't have all the answers yet I hope others also find time to answer.
Especially important would be to crack the khepri_beats problem.

> Details at
https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+demo-server

I was investigating it now and I got a question regarding this block:
demo_server -> provisioner: add rhythm service to the tenant
  provisioner -> rhythm: provision signature with same timestamp as current
identity signature.
  provisioner -> identity: create application with signature returned by
rhythm
  provisioner -> rhythm: ask what permissions rhythm needs
  provisioner -> identity: create permission request for rhythm to access
identity to create permission requests
  provisioner -> rhythm: initialize (in this case only, tenant data is not
in separate databases)

When I add rhythm service to tenant  (04.001 in my Postman scripts):
PUT [{"name": "rhythm-v1"}] to http://{{provisionerUrl}}
/provisioner/v1/tenants/{{tenantIdentifier}}/applications
Does that mean that provision should make a series of requests to rhythm
and identity?

Regards,
Juhan


Kontakt Vishwas Babu A J () kirjutas kuupäeval K,
25. september 2019 kell 04:26:

> Hi Juhan,
>
> > 3. I create scheduler user imhotep (and change password to 26500BC) but
> > what else should I do with this user? Feed it to some application? Why is
> > this role and user created in demo server?
>
> Details at
> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+demo-server
>
>
> > 5. I have no idea how connect a user with a specific customer (to
> simulate
> > customer logging in one one's own behalf). How should that work?
>
> AFAIK, you cannot do the same on the current micro-services. The Mifos
> initiative has another project (Customer Self Service API Gateway) which
> allows customer self service by maintaining separate credentials for each
> customer. After the customer has been authenticated and authorized at the
> gateway, it interfaces with Fineract-CN using a system / back-office user
> credential .
>
> Next week, I am planning to spend time on going through the deposits
> micro-service while filling out the checklist at
> https://cwiki.apache.org/confluence/display/FINERACT/Digital+wallet, so
> will find the answers to the questions you have raised in case someone has
> not already replied to the same.
>
> Regards,
> Vishwas
>
>
>
> On 2019/09/23 14:22:54, Juhan Aasaru  wrote:
> > Hi!
> >
> > I have improved Postman provisioning scripts located under
> > https://github.com/apache/fineract-cn-docker-compose/. I would like to
> > complete the provisioning scripts but as some logic is not working for
> me I
> > need help. *Vishwas, Courage, Myrle, Awasum, Ebenezer, Isaac or anyone
> > else, if you have time, plese look into this as provisioning is needed
> for
> > everyone. *Also if anyone could explain what should be happening it would
> > be easier to solve the issues or at least get the bugs logged in Jira.
> >
> > When I started to imporve the initial scripts created by Vishwas I
> > investigated the provisioning in Demo server and also I looked bash
> > provisioning scripts that Courage has created earlier but I didn't find
> > answers to these questions from there.
> >
> > What currently works with Postman:
> > * creating a tenant
> > * creating an application
> > * assigning an application to a tenant
> > * creating roles (like admin and scheduler)
> > * creating users with specific role
> > * creating members/customers
> > * creating ledgers and accounts (full chart of accounts)
> > * creating and activating products
> >
> > *What doesn't work (need your help!):*
> >
> > When testing scripts I had following micro services running: provisioner,
> > rhythm, identity, customer, accounting, deposit, portfolio, fims-web-app
> >
> > 1. With rhythm I still get error relation "khepri_beats" does not exist -
> > this is also registered as FINCN-177
> > <https://issues.apache.org/jira/browse/FINCN-177> by me. After I
> > increased rhythm.beatCheckRate to 60 it takes more time for this
> error
> > to occur in logs. I wonder if other errors could be caused by rhythym not
> > functioning. Also at what point should this table be created?
> >
> > 2. I cannot enable privileges (at steps 06.5 and 06.6 in Postman):
> >
> > PUT http://{{identityUrl}}
> >
> /identity/v1/applications/rhythm-v1/permissions/identity__v1__app_self/users/imhotep/enabled
> >
> > PUT http://{{identityUrl}}
> >
> /identity/v1/applications

Problem finishing Postman-based provisioning scripts for fineract-cn

2019-09-23 Thread Juhan Aasaru
Hi!

I have improved Postman provisioning scripts located under
https://github.com/apache/fineract-cn-docker-compose/. I would like to
complete the provisioning scripts but as some logic is not working for me I
need help. *Vishwas, Courage, Myrle, Awasum, Ebenezer, Isaac or anyone
else, if you have time, plese look into this as provisioning is needed for
everyone. *Also if anyone could explain what should be happening it would
be easier to solve the issues or at least get the bugs logged in Jira.

When I started to imporve the initial scripts created by Vishwas I
investigated the provisioning in Demo server and also I looked bash
provisioning scripts that Courage has created earlier but I didn't find
answers to these questions from there.

What currently works with Postman:
* creating a tenant
* creating an application
* assigning an application to a tenant
* creating roles (like admin and scheduler)
* creating users with specific role
* creating members/customers
* creating ledgers and accounts (full chart of accounts)
* creating and activating products

*What doesn't work (need your help!):*

When testing scripts I had following micro services running: provisioner,
rhythm, identity, customer, accounting, deposit, portfolio, fims-web-app

1. With rhythm I still get error relation "khepri_beats" does not exist -
this is also registered as FINCN-177
 by me. After I
increased rhythm.beatCheckRate to 60 it takes more time for this error
to occur in logs. I wonder if other errors could be caused by rhythym not
functioning. Also at what point should this table be created?

2. I cannot enable privileges (at steps 06.5 and 06.6 in Postman):

PUT http://{{identityUrl}}
/identity/v1/applications/rhythm-v1/permissions/identity__v1__app_self/users/imhotep/enabled

PUT http://{{identityUrl}}
/identity/v1/applications/rhythm-v1/permissions/portfolio__v1__khepri/users/imhotep/enabled

I get error:
"message": "Application permission 'rhythm-v1.identity__v1__app_self'
doesn't exist.",
"path":
"/identity/v1/applications/rhythm-v1/permissions/identity__v1__app_self/users/imhotep/enabled"

and

"message": "Application permission 'rhythm-v1.portfolio__v1__khepri'
doesn't exist.",
"path":
"/identity/v1/applications/rhythm-v1/permissions/portfolio__v1__khepri/users/imhotep/enabled"
should I do anything before issuing these commands? Is this needed at all?
If I look into cassandra keyspace playground table
isis_application_permissions then it is empty. Anyone knows when should the
values be created there?

3. I create scheduler user imhotep (and change password to 26500BC) but
what else should I do with this user? Feed it to some application? Why is
this role and user created in demo server?

4. I cannot connect product with a customer (at step 11.1 in Postman)
I post the following JSON to http://{{depositUrl}}/deposit/v1/instances

{
  "productIdentifier": "savingsProduct001",
  "beneficiaries": [
"customer10"
  ],
  "customerIdentifier": "customer10"
}
I get 202 status code back but requesting user products after that:
http://{{depositUrl}}/deposit/v1/instances?customer=customer10
still returns an empty list. The same occurs when using fims-web-app to
link customer with a product. Should I have any other micro services
running besides the one named above?

4. One more question regarding last one - what is the point of
beneficiaries section? Could anyone please explain?

5. I have no idea how connect a user with a specific customer (to simulate
customer logging in one one's own behalf). How should that work?

I hope someone can answer at least some of the questions.

Thanks!
Juhan


Re: github notifications going to wrong mailing list

2019-09-19 Thread Juhan Aasaru
Hi!

I'm sorry, most of the notifications have been triggered by my actions,
I'll try to keep away from the repo until it is fixed.
The ticket with infra has been already created
https://issues.apache.org/jira/browse/INFRA-19022
but for some reason resolving it is getting delayed.

Kind regards
Juhan

Kontakt Myrle Krantz () kirjutas kuupäeval N, 19.
september 2019 kell 21:57:

> Hey all,
>
> We've just had a rather large number of people request to be removed from
> the mailing list.  I don't know the reason, but one thing about the
> dev@fineract.a.o mailing list that is bothering *me* currently is the
> large number of notifications coming from fineract-cn-docker-compose.
> Those notifications belong on commits@.
>
> Can whoever requested that github repo, please create a ticket to infra to
> fix the notifications so that they go to the right place?
>
> Thank you,
> Myrle
>


Re: Testing ORM Migration to EclipseLink

2019-09-18 Thread Juhan Aasaru
I managed to overcome this problem myself.

I think it was caused by following value in Dockerfile:
rhythm.beatCheckRate=10

When I replaced it with
rhythm.beatCheckRate=60
the problem disappeared.

Juhan

Kontakt Juhan Aasaru () kirjutas kuupäeval K, 18.
september 2019 kell 14:18:

> Hi!
>
> Sorry about the late reply.
>
> 1. In my opinion it is not question about provisioning as as soon as the
> rhythym application starts up, it tries to select from khepri_beats (see
> logs below).
> I'm not using demo server at all. I use Postman scripts for provisioning.
> I wonder if I should run some step before starting rhythm micro service.
> I get the error on both with latest docker image of rhythm as well as when
> starting the service locally.
> I logged bug report here: https://issues.apache.org/jira/browse/FINCN-177
>
> Here are the logs when running from localhost
>
> 13:56:54.948 [main] INFO  o.s.b.c.e.j.JettyEmbeddedServletContainer -
> Jetty started on port(s) 2022 (http/1.1)
> 13:56:54.958 [main] INFO  o.a.f.c.r.service.RhythmApplication - Started
> RhythmApplication in 13.207 seconds (JVM running for 14.079)
> [EL Finer]: transaction: 2019-09-18
> 13:56:54.998--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--begin
> unit of work flush
> [EL Finer]: transaction: 2019-09-18
> 13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--end
> unit of work flush
> [EL Finest]: query: 2019-09-18
> 13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--Execute
> query ReadAllQuery(referenceClass=BeatEntity )
> [EL Finest]: connection: 2019-09-18
> 13:56:55.013--ServerSession(988179589)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--Connection
> acquired from connection pool [default].
> [EL Finer]: transaction: 2019-09-18
> 13:56:55.013--ClientSession(571004194)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--begin
> transaction
> [EL Finest]: connection: 2019-09-18
> 13:56:55.013--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--reconnecting
> to external connection pool
> [EL Fine]: sql: 2019-09-18
> 13:56:55.014--ClientSession(571004194)--Connection(1203869313)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
> id, alignment_hour, application_identifier, beat_identifier, next_beat,
> tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE
> bind => [2019-09-18 13:56:54.923]
> [EL Fine]: sql: 2019-09-18
> 13:56:55.053--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
> 1
> [EL Warning]: 2019-09-18
> 13:56:55.055--UnitOfWork(641160635)--Thread(Thread[pool-2-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
> Call: SELECT id, alignment_hour, application_identifier, beat_identifier,
> next_beat, tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR
> UPDATE
> bind => [2019-09-18 13:56:54.923]
> Query: ReadAllQuery(referenceClass=BeatEntity sql="SELECT id,
> alignment_hour, application_identifier, beat_identifier, next_beat,
> tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE")
> at
> org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
> at
> org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1620)
>
> Regards
> Juhan
>
> Kontakt Ebenezer Graham () kirjutas kuupäeval
> R, 6. september 2019 kell 14:28:
>
>> Thanks for the update,
>>
>> 1. For the error below, I believe that is because you didn't provision
>> the microservices. Can you please confirm if you set
>> -Ddemoserver.provision=true on the first run. Also, you can use
>> https://github.com/apache/fineract-cn-demo-server/blob/develop/scripts/Unix/initial-setup.sh
>>  to
>> test the integration. I have deleted a few of the branches in the
>> eclipselink-test-script.sh
>>
>> 1. Rhythm keeps giving me this error:
>>> rhythm-ms_1   | Internal Exception:
>>> org.postgresql.util.PSQLException: ERROR: relation "khepri_beats" does not
>>> exist
>>> rhythm-ms_1   |   Position: 103
>>
>>
>> 2. I will make the make the changes and submit the necessary PRs asap.
>>
>> 3. I have updated the Setup Guide to cater for PostgreSQL. However, I
>> need someone to test the MacOS instructions work correctly.
>>
>&

Re: Testing ORM Migration to EclipseLink

2019-09-18 Thread Juhan Aasaru
Hi!

Sorry about the late reply.

1. In my opinion it is not question about provisioning as as soon as the
rhythym application starts up, it tries to select from khepri_beats (see
logs below).
I'm not using demo server at all. I use Postman scripts for provisioning. I
wonder if I should run some step before starting rhythm micro service.
I get the error on both with latest docker image of rhythm as well as when
starting the service locally.
I logged bug report here: https://issues.apache.org/jira/browse/FINCN-177

Here are the logs when running from localhost

13:56:54.948 [main] INFO  o.s.b.c.e.j.JettyEmbeddedServletContainer - Jetty
started on port(s) 2022 (http/1.1)
13:56:54.958 [main] INFO  o.a.f.c.r.service.RhythmApplication - Started
RhythmApplication in 13.207 seconds (JVM running for 14.079)
[EL Finer]: transaction: 2019-09-18
13:56:54.998--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--begin
unit of work flush
[EL Finer]: transaction: 2019-09-18
13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--end
unit of work flush
[EL Finest]: query: 2019-09-18
13:56:54.999--UnitOfWork(641160635)--Thread(Thread[pool-2-thread-1,5,main])--Execute
query ReadAllQuery(referenceClass=BeatEntity )
[EL Finest]: connection: 2019-09-18
13:56:55.013--ServerSession(988179589)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--Connection
acquired from connection pool [default].
[EL Finer]: transaction: 2019-09-18
13:56:55.013--ClientSession(571004194)--Connection(1724597978)--Thread(Thread[pool-2-thread-1,5,main])--begin
transaction
[EL Finest]: connection: 2019-09-18
13:56:55.013--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--reconnecting
to external connection pool
[EL Fine]: sql: 2019-09-18
13:56:55.014--ClientSession(571004194)--Connection(1203869313)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
id, alignment_hour, application_identifier, beat_identifier, next_beat,
tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE
bind => [2019-09-18 13:56:54.923]
[EL Fine]: sql: 2019-09-18
13:56:55.053--ClientSession(571004194)--Thread(Thread[pool-2-thread-1,5,main])--SELECT
1
[EL Warning]: 2019-09-18
13:56:55.055--UnitOfWork(641160635)--Thread(Thread[pool-2-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
Call: SELECT id, alignment_hour, application_identifier, beat_identifier,
next_beat, tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR
UPDATE
bind => [2019-09-18 13:56:54.923]
Query: ReadAllQuery(referenceClass=BeatEntity sql="SELECT id,
alignment_hour, application_identifier, beat_identifier, next_beat,
tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR UPDATE")
at
org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1620)

Regards
Juhan

Kontakt Ebenezer Graham () kirjutas kuupäeval R,
6. september 2019 kell 14:28:

> Thanks for the update,
>
> 1. For the error below, I believe that is because you didn't provision the
> microservices. Can you please confirm if you set
> -Ddemoserver.provision=true on the first run. Also, you can use
> https://github.com/apache/fineract-cn-demo-server/blob/develop/scripts/Unix/initial-setup.sh
>  to
> test the integration. I have deleted a few of the branches in the
> eclipselink-test-script.sh
>
> 1. Rhythm keeps giving me this error:
>> rhythm-ms_1   | Internal Exception:
>> org.postgresql.util.PSQLException: ERROR: relation "khepri_beats" does not
>> exist
>> rhythm-ms_1   |   Position: 103
>
>
> 2. I will make the make the changes and submit the necessary PRs asap.
>
> 3. I have updated the Setup Guide to cater for PostgreSQL. However, I need
> someone to test the MacOS instructions work correctly.
>
> Regards
>
> On Wed, 4 Sep 2019 at 15:54, Juhan Aasaru  wrote:
>
>> Hi Graham and Isaac!
>>
>> Great progress and excellent work regarding Postgresql and EclipseLink
>> migration!
>> I did some tests (using the official docker images I'm working on). This
>> is what I found
>>
>> 1. Rhythm keeps giving me this error:
>> rhythm-ms_1   | Internal Exception:
>> org.postgresql.util.PSQLException: ERROR: relation "khepri_beats" does not
>> exist
>> rhythm-ms_1   |   Position: 103
>> rhythm-ms_1   | Error Code: 0
>> rhythm-ms_1   | Call: SELECT id, alignment_hour,
>> application_identifier, beat_identif

Re: Stuck when attempting to orchestrate microservices

2019-09-17 Thread Juhan Aasaru
Hi!

One way is not to use demo server at all.

Even if you don't plan to use Docker I suggest looking at
https://github.com/apache/fineract-cn-docker-compose

It starts up databases and needed micro services - each service on its own
port.
And then you can use Postman scripts to make services aware of each other.

I hope that helps

Kind regards
Juhan

Kontakt Robert Halfton () kirjutas kuupäeval T, 17.
september 2019 kell 22:14:

> Hello Devs,
>
> We are working on trying to setup Fineract CN and are stuck on step 3
> (Orchestrate micro services with persistence)
>
> Each attempt fails with a message reading 1 Test 2 Failures, and at least
> one of the problems appears to involve port 61616 despite its being free.
> How do we fix this?
>
> Building on GCP VM compute instance
> Machine type: 8vCPUs, 30 GB memory
> Image: Ubuntu 16.04 (size = 16GB)/ Standard persistent disk
> Installed: JDK-8u221; Git; PostGRE; Cassandra; Node + Npm, Maven, Nginx
> Option 1/Step 2
> Option B/Step 3
>
> Solutions Tried:
> >Increased #Ports for Postgres
> >Increased entropy
> >Verified Postgres & Cassandra password conformed
> >Checked Postgres and Cassandra are listening on proper ports
> >Created TCP protocol firewall rule for VM to ensure correct ports were
> accessible
> >Running with Postgres and Cassandra off (just for the heck of it)
> Note: We have cleaned up after each failed build.
>
> Thanks for your help.
>
> Robert
>


Re: Typical chart of accounts for fineract-cn-fims-web-app

2019-09-15 Thread Juhan Aasaru
Thanks Vishwas.
I now have Postman provisioning scripts for creating ledgers, I can create
all ledgers with 5 requests (as the ledger creating endpoint takes
subledgers array).
But I need to make individual request for each account - I plan to
investigate if Postman can be configured to repeat actions.

Next question - can anyone recommend configuration to create Deposit
products based on this tree of accounts. I would like to create at least
one product of each type (Checking, Savings and Share) for demonstration
purposes.

Zayyad, I'm afraid there is no hosted demo instance yet.

Juhan




Kontakt Vishwas Babu A J () kirjutas kuupäeval N,
12. september 2019 kell 14:01:

> Hi Juhan,
>
> The sample charts of accounts used by the demo server is at
> https://github.com/apache/fineract-cn-default-setup/blob/develop/accounting/src/main/resources/standardChartOfAccounts/ledgers.csv
> . I had been meaning to update my provisioning scripts with these details +
> provisioning of the portfolio micro-service, but haven't gotten around to
> the same yet :)
>
> Regards,
> Vishwas
>
> On 2019/09/11 18:49:56, Juhan Aasaru  wrote:
> > Hi!
> >
> > I want to create Postman scripts that provision a structure for
> fineract-cn
> > playground tenant. I want to do this for demonstration purposes - as
> > currently when you start up fims-web-app it is quite empty. Running
> postman
> > scripts can be later automated [2] - so once we get a demo server up we
> > could wipe the contents of it every now and then and re-create sample
> > structure.
> >
> > I took scripts from Vishwas repository [1] and developed them further
> but I
> > ran into a problem that I have no idea how chart of accounts of a typical
> > company using fineract looks like.
> >
> > I wonder if anyone here could point me to some article/graph/etc that
> > describes the typical setup in the language of different types of
> ledgers,
> > subledgers, accounts, journal entries etc
> >
> > Thanks!
> > Juhan
> >
> >
> >
> > [1] https://github.com/vishwasbabu/ProvisioningFineractCN
> >
> > [2]
> >
> https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/
> >
>


Fineract CN public Docker images are now available

2019-09-15 Thread Juhan Aasaru
Hi!

I have completed seting up public DockerHub images for all Fineract-CN
applications and also updated Docker-Compose scripts to run them. Docker
images are automatically built and uploaded to:
https://hub.docker.com/r/apache/fineract-cn-

So if anyone wants to try out Fineract-CN at their own computer then there
is one command to start up Postgres, Cassandra ActiveMQ and another command
to start up a set of Fineract CN micro services like this:

docker-compose up provisioner-ms identity-ms office-ms customer-ms
accounting-ms fims-web-app

Documentation is here:
*
https://cwiki.apache.org/confluence/display/FINERACT/DockerHub+images#DockerHubimages-RunningwithDockerCompose
* https://github.com/apache/fineract-cn-docker-compose

Thank you Awasum, Courage, Vishwas and Michael for all the help and
previous work.

Following repositories:
* https://github.com/openMF/fineract-cn-containers
* https://github.com/vishwasbabu/ProvisioningFineractCN
can now be archived as I have defeloped furter the work there and the
outcome is now available here:
https://github.com/apache/fineract-cn-docker-compose

Kind regards
Juhan


Re: Ask Infra for help

2019-09-13 Thread Juhan Aasaru
No problem. Ticket created:
https://issues.apache.org/jira/browse/INFRA-19022

Juhan

Kontakt Awasum Yannick () kirjutas kuupäeval R, 13.
september 2019 kell 13:25:

> Hi Juhan, Isaac,
>
>
> Please could one of you put in an infra ticket to redirect commit
> notifications on https://github.com/apache/fineract-cn-docker-compose
>
>  to be sent to comm...@fineract.apache.org ?
>
> I made a mistake when I created the repo and annoying notifications are
> sent to the dev list...
>
> Very busy now to handle this Please.
>


Re: REG: New module goldrate

2019-09-12 Thread Juhan Aasaru
Hi!

There is a plug-in (called rat) that checks that each file begins with a
comment that states software license.
Just copy-paste this comment to the beginning of
GoldRPWritePlatformService.java from any other java file of the project.

Kind regards
Juhan


Kontakt Aiswarya Rajendran () kirjutas
kuupäeval N, 12. september 2019 kell 13:19:

>
> Team,
>
> I have set up the fineract application in my machine.
> In order to set up a new module from the scratch from my machine,
> goldpurity  is the name of the new module, I have added the files
> mentioned bellow:
>
> CommandSource - added a colum gold_id in the table
> m_portfolio_command_source
> CommandWrapper
> CommandWrapperBuilder
> GoldRatesApiConstants
> GoldRatesApiResourceSwagger
> GoldRatesApiResource
> GRPData
> GoldRate - entity of the entity
> GoldRateRepository
> GoldRateRepositoryWrapper
> CreateGoldRateCommandHandler
> GoldRateCommandFromApiJsonDeserializer
> GoldRateReadPlatformService
> GoldRPWritePlatformService
> GoldRPWritePlatformServiceJpaRepositoryImpl
> GoldRateReadPlatformService
>
> But when I tried to build apache/incubator-fineract it fails when building
> rat.
>
> Execution failed for task ':rat'.
> > Found 140 files with unapproved/unknown licenses. See
> file:incubator-fineract/build/reports/rat/rat-report.txt
>
> When I see the file there are a lot of files under the tag
>
> 140 Unknown Licenses
>
> Files with unapproved licenses:
>
>
> D:/NEWWORKSPACE/incubator-fineract/fineract-provider/src/main/java/org/apache/fineract/organisation/goldpurity/service/GoldRPWritePlatformService.java
>
> I am stuck up with current issue.
>
> Please help.
>
> Thanks,
> Aiswarya Rajendran
>


Typical chart of accounts for fineract-cn-fims-web-app

2019-09-11 Thread Juhan Aasaru
Hi!

I want to create Postman scripts that provision a structure for fineract-cn
playground tenant. I want to do this for demonstration purposes - as
currently when you start up fims-web-app it is quite empty. Running postman
scripts can be later automated [2] - so once we get a demo server up we
could wipe the contents of it every now and then and re-create sample
structure.

I took scripts from Vishwas repository [1] and developed them further but I
ran into a problem that I have no idea how chart of accounts of a typical
company using fineract looks like.

I wonder if anyone here could point me to some article/graph/etc that
describes the typical setup in the language of different types of ledgers,
subledgers, accounts, journal entries etc

Thanks!
Juhan



[1] https://github.com/vishwasbabu/ProvisioningFineractCN

[2]
https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/


Re: Testing ORM Migration to EclipseLink

2019-09-04 Thread Juhan Aasaru
Hi Graham and Isaac!

Great progress and excellent work regarding Postgresql and EclipseLink
migration!
I did some tests (using the official docker images I'm working on). This is
what I found

1. Rhythm keeps giving me this error:
rhythm-ms_1   | Internal Exception: org.postgresql.util.PSQLException:
ERROR: relation "khepri_beats" does not exist
rhythm-ms_1   |   Position: 103
rhythm-ms_1   | Error Code: 0
rhythm-ms_1   | Call: SELECT id, alignment_hour,
application_identifier, beat_identifier, next_beat, tenant_identifier FROM
khepri_beats WHERE (next_beat < ?) FOR UPDATE
rhythm-ms_1   | bind => [2019-09-04 11:34:43.778]
rhythm-ms_1   | Query: ReadAllQuery(referenceClass=BeatEntity
sql="SELECT id, alignment_hour, application_identifier, beat_identifier,
next_beat, tenant_identifier FROM khepri_beats WHERE (next_beat < ?) FOR
UPDATE")

2. many services (provisioner, office, customer, accounting, teller,
reporting, payroll) now define data source properties twice
in service/src/main/resources/application.yaml
The problem is that if I want to overwrite some value I have to pass it in
as two separate parameters.

For example:
https://github.com/apache/fineract-cn-provisioner/commit/4327ce032c97cc961ce15e39c22863654cefc230
 has:

postgresql:
  driverClass: org.postgresql.Driver
  database: seshat
  host: localhost
  port: 5432
  user: postgres
  password: postgres

 spring:
  datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/seshat
username: postgres
password: postgres

Please change the last block to something like this:

 spring:
  datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${postgresql.host}:${postgresql.port}/seshat
username: ${postgresql.user}
password: ${postgresql.password}

Then there should be no need to pass in the variables twice if I want to
change some value.

3. Instructions should be updated as well and MariaDB/Mysql replaced with
Postgresql:
https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN

Also Vishwas has some good instructions that need to be updated
https://github.com/vishwasbabu/ProvisioningFineractCN

Kind regards
Juhan

Kontakt Ebenezer Graham () kirjutas kuupäeval E,
2. september 2019 kell 15:03:

> Thank you for the update.
>
> I will resolve the conflicts on the notification service and revert to
> you.
>
>
> On Mon, 2 Sep 2019, 03:52 Isaac Kamga,  wrote:
>
>> Hello Graham,
>>
>> That's some very good work you've done so far.
>>
>> I have executed the script and everything works well on my end right
>> through to the fims-web-app.
>>
>> EclipseLink configurations was merged into PostgreSQL library last week
>> and the changes to fineract-cn-test library on FINCN-114 which migrate it
>> from MariaDB to PostgreSQL have been merged into the develop branch. The
>> latter causes the Travis checks on the other repositories to succeed.
>>
>> However, the Thymeleaf templating PR heading to Notifications develop
>> branch needs your attention.
>>
>> More grease to your elbows.
>>
>> Cheers,
>> Isaac Kamga.
>>
>> On Sun, Aug 25, 2019 at 2:43 PM Ebenezer Graham 
>> wrote:
>>
>>> Hello Devs,
>>>
>>> I would like to revive the topic discussed in the previous mail.
>>>
>>> I have been running Fineract CN on EclipseLink and PostgreSQL for a
>>> while now and I believe it's ready to be merged into the develop branches.
>>> But before that, it is paramount that other experienced developers in the
>>> community examine what has been done so far and QA it.
>>>
>>> Simply execute this script
>>> https://raw.githubusercontent.com/ebenezergraham/fineract-cn-demo-server/FINCN-141/scripts/Unix/eclipselink-test-setup.sh
>>>  to
>>> get all the necessary branches.
>>>
>>> *PS: *I have experienced better performance with PostgreSQL and
>>> EclipseLink on my workstation.
>>>
>>> For instance, Application Startup + Provisioning took 14 mins
>>>   Application Startup alone took 12 mins
>>>
>>> With MariaDB and Hibernate out of the way, we will be closer to making
>>> Fineract CN compliant. On top of that, if we are able to upgrade the spring
>>> versions, this should significantly improve Fineract CN's response time,
>>> performance and memory usage.
>>>
>>> Looking forward to hearing from you.
>>>
>>> Regards.
>>>
>>>
>>> On Tue, 16 Jul 2019 at 04:47, Ebenezer Graham 
>>> wrote:
>>>
 Hello Fineracters,

 I just finished integrating EclipseLink into Fineract CN. I would like
 to request your participation in the testing of the new ORM. Your
 constructive feedback will help me to fine-tune the integration and resolve
 all known issues with PostgreSQL.

 *Approach Used *
 Migrating from Hibernate to EclipseLink in Spring is actually very
 simple and seamless.

 1. I simply removed hibernate core and entity-manager from
 spring-data-jpa [1]
 2. Then, I added the recommended 

Re: Milestone Releases for Fineract CN (How to Release Fineract CN)

2019-08-25 Thread Juhan Aasaru
Hello!

Thanks Awasum for starting the discussion around this.
Docker Hub is in the middle of being configured that every time something
is pushed to
"develop" branch a new Docker image is built and tagged with "latest".

My suggestion is to start tagging fineract-cn-* repos with
0.0.1-M1, 0.0.1-M2, 0.0.1-M3, etc
whenever some larger work has been completed.

Currently there is not much development going on in fineract-cn but if two
people are runninig images tagged "latest"
they might not be using the same code (as latest is rewritten with each
push to "develop" branch).

To overcome this limitation I was proposing to release these "milestone"
versions just to have
common ground for everryone.

Tagging a version in github also produces a release in JFrog Arttifactory
so this would be also
common ground to attach a certan version of some fineract-cn-* library.

Juhan

Kontakt Awasum Yannick () kirjutas kuupäeval L, 24.
august 2019 kell 23:16:

> Hi All,
>
> Juhan is making progress with releasing Fineract via Docker :
> https://issues.apache.org/jira/browse/FINCN-170
>
> There is a suggestion on that thread to make formal milestone releases of
> CN via Dockerhub. Through this process, we have began testing releasing via
> tags on Github which then trggers docker builds and publishing on Dockerhub
> See: https://github.com/apache/fineract-cn-accounting/releases
> and https://hub.docker.com/r/apache/fineract-cn-accounting/tags
>
> I wanted to raise the discussion around how we plan on Releasing Fineract
> CN.
> Any ideas and thoughts?
>
> I know some work is still left to be done. Between the work Isaac did on
> integrating Postgres and the work Graham is doing wrt replacing Hibernate
> with EclipseLink, I think we are getting close.
>
>
> Thanks.
> Awasum
>
>


Re: Contributing to Fineract CN

2019-08-22 Thread Juhan Aasaru
I created both topics (upgrading Spring Boot and upgrading Gradle) as
issues in Jira so we would not loose them:
https://issues.apache.org/jira/browse/FINCN-172
https://issues.apache.org/jira/browse/FINCN-173

I agree that my idea comes from out of the blue so probably there could be
more important tasks out there.
Let's try to discuss them and get them recorded in Jira.

Juhan

Kontakt Ed Cable () kirjutas kuupäeval N, 22. august
2019 kell 16:09:

> Udayan,
>
> Glad to see you're formally getting involved with the community after
> initial explorations.
>
> Juhan - thanks for sharing the potential tasks I would like to revisit the
> action items and next steps from our previous DevOps meetings as I know
> there's a great deal of tasks we could focus on in terms of making the
> build process simpler for initial developers/contributors.
>
> Another task that Markus had surfaced and Ebenezer had been looking into
> and is being discussed on the Outreachy thread is:
>
> 1. Upgrading Fineract CN from Spring Boot 1.4.1 to 2.1.+
> 2. Upgrading Fineract CN from Spring Framework from 4.3.3 to 5.1.+
>
> Ed
>
> On Thu, Aug 22, 2019 at 3:08 AM Udayan Tandon <
> uda...@threewheelsunited.com> wrote:
>
>> Hi Juhan,
>>
>>
>>
>> This feels right up my alley. I’ll try and give it a shot. I was
>> wondering if this setup script assumes the underlying infrastructure as
>> Docker or Kubernetes or something akin to the demo-server.
>>
>>
>>
>> May I also ask other follow-up doubts about setting up Fineract CN
>> specifically on Docker on the same thread?
>>
>>
>>
>> Thanks and Regards
>>
>> Udayan Tandon
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From:* Juhan Aasaru 
>> *Sent:* Thursday, August 22, 2019 12:31:28 PM
>> *To:* Dev 
>> *Subject:* Re: Contributing to Fineract CN
>>
>>
>>
>> Hi!
>>
>> I have one idea what you could do - create Java based scripts to
>> provision Fineract-cn based on Postman scripts.
>> I formulated it as a task:
>> https://issues.apache.org/jira/browse/FINCN-171
>>
>> My idea is also open to any discussions what the end result should be.
>>
>> If anyone starts working on this I can review it every few days and
>> provide feedback.
>>
>>
>>
>> Kind regards
>>
>> Juhan
>>
>>
>>
>> Kontakt Udayan Tandon () kirjutas
>> kuupäeval N, 22. august 2019 kell 06:30:
>>
>> Hi guys,
>>
>>
>>
>> I would like to start contributing to Fineract CN. I have been playing
>> around with it while trying to set it up in Docker. I feel confident now in
>> contributing. Should I just pick an issue and start contributing? Are there
>> any beginner tasks to be done before that? Maybe some beginner specific
>> issues that I can focus on? Any other tips/instructions in addition to the
>> Apache and Fineract contribution documentation?
>>
>>
>>
>> Thanks and regards
>>
>> Udayan Tandon
>>
>> *From: *Juhan Aasaru 
>> *Sent: *22 August 2019 12:32
>> *Subject: *Re: Contributing to Fineract CN
>>
>>
>>
>> Hi!
>>
>> I have one idea what you could do - create Java based scripts to
>> provision Fineract-cn based on Postman scripts.
>> I formulated it as a task:
>> https://issues.apache.org/jira/browse/FINCN-171
>>
>> My idea is also open to any discussions what the end result should be.
>>
>> If anyone starts working on this I can review it every few days and
>> provide feedback.
>>
>>
>>
>> Kind regards
>>
>> Juhan
>>
>>
>>
>> Kontakt Udayan Tandon () kirjutas
>> kuupäeval N, 22. august 2019 kell 06:30:
>>
>> Hi guys,
>>
>>
>>
>> I would like to start contributing to Fineract CN. I have been playing
>> around with it while trying to set it up in Docker. I feel confident now in
>> contributing. Should I just pick an issue and start contributing? Are there
>> any beginner tasks to be done before that? Maybe some beginner specific
>> issues that I can focus on? Any other tips/instructions in addition to the
>> Apache and Fineract contribution documentation?
>>
>>
>>
>> Thanks and regards
>>
>> Udayan Tandon
>>
>>
>>
>
>
> --
> *Ed Cable*
> President/CEO, Mifos Initiative
> edca...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>
> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>
>


Re: Apache Fineract and Outreachy Internships at the ASF

2019-08-22 Thread Juhan Aasaru
Hi!

I agree with Ebenezer's ideas and I propose joining #1 and #2 (updating
spring) into one task as otherwise these tasks done by different persons
would create a lot of conflicts.

Outdated Gradle version is especially problematic and already stops us from
using newest libraries, I hope we find someone to get this done.

I would be willing to mentor one person.

Juhan


Kontakt Ebenezer Graham () kirjutas kuupäeval
T, 20. august 2019 kell 21:21:

> Hi Yannick,
>
> I want to suggest a few ideas for Fineract CN.
>
> 1. Upgrading Fineract CN from Spring Boot 1.4.1 to 2.1.+
> 2. Upgrading Fineract CN from Spring Framework from 4.3.3 to 5.1.+
> 3. Upgrading Gradle from 3.4.1 to 5.6
>
> Warm Regards.
>
>
>
> On Tue, Aug 20, 2019 at 7:20 PM Awasum Yannick  wrote:
>
>> Hi All,
>>
>> The Apache Software Foundation is planning to participate in its first
>> Outreachy round beginning this September 2019. See here
>> 
>> for details.
>>
>> Outreachy is similar to GSoC but organized for people from
>> underrepresented communities. See more here
>>  about the rules. The goal
>> of Outreachy is to improve diversity and inclusion in the Software industry.
>>
>> Outreachy takes place twice a year:
>>
>> 1.) February to August, Coding from May to August.
>> 2.) September to March, coding from November to March
>>
>> I think this program which is new to Apache projects can help us improve
>> our diversity and also help us do some work on our software. The Apache
>> foundation is going in for the next Outreachy round which starts formally
>> in September 2019 for interns and ends in March 2020.
>>
>> I want to hear what you all think about Fineract participating in
>> Outreachy this year.
>>
>> For committers, will you be able to mentor an Intern?
>>
>> If the community likes to go in for this then I am calling on committers
>> who will be interested to mentor interns this upcoming round for Apache
>> Fineract to start putting down their project ideas on wiki.
>>
>> From the top of my head, Fineract 1.x has some key issues which could be
>> fixed. This include:
>>
>> 1.) Upgrading Fineract 1.x to Spring Boot 2 and updating other
>> dependencies.
>> 2.) Code Quality and Static Code Analysis for Fineract 1.x
>> 3.) Enhancing Unit and Integration tests for  Fineract 1.x
>>
>> What other ideas do you think will be good for Outreachy?
>>
>>
>>
>
> --
>
> *Best Regards,*
>
> *Ebenezer Graham*
>
> *BSc (Hons) Computing*
>
>
> [image: EmailSignature.png]
>
>
> 
> GitHub  | LinkedIn
>  | Personal Website
> 
> skype:
> ebenezer.graham
> | Phone:
> +230 5840 9206 <+230%205840%209206>
>
>
> *“Talk is cheap, show me the Code” *- *Linus Torvalds*
>
>


Re: Contributing to Fineract CN

2019-08-22 Thread Juhan Aasaru
Hi!

I have one idea what you could do - create Java based scripts to provision
Fineract-cn based on Postman scripts.
I formulated it as a task: https://issues.apache.org/jira/browse/FINCN-171
My idea is also open to any discussions what the end result should be.
If anyone starts working on this I can review it every few days and provide
feedback.

Kind regards
Juhan

Kontakt Udayan Tandon () kirjutas kuupäeval
N, 22. august 2019 kell 06:30:

> Hi guys,
>
> I would like to start contributing to Fineract CN. I have been playing
> around with it while trying to set it up in Docker. I feel confident now in
> contributing. Should I just pick an issue and start contributing? Are there
> any beginner tasks to be done before that? Maybe some beginner specific
> issues that I can focus on? Any other tips/instructions in addition to the
> Apache and Fineract contribution documentation?
>
> Thanks and regards
> Udayan Tandon
>


Test fineract-cn public Docker images

2019-08-20 Thread Juhan Aasaru
Hi!

I'm in the middle of getting fineract-cn-* images published to Docker Hub
under Apache account. The idea is that every time a new pull request gets
approved in Github it triggers a build in Docker Hub and a new image is
automatically published with "latest" tag (releases get their own tag). I
utilize Docker Multi Stage Builds - thank you Michael for suggestions how
to solve building the jar and running it inside the same Dockerfile.

Currently I have set the images up on my own space:
https://hub.docker.com/u/aasaru
and one could run images like this:
docker run aasaru/fineract-cn-provisioner
(it downloads the image automatically)

I wonder if anyone would have time to run the images or come up with any
ideas what could be improved or adjusted.
If not then we just get pull requests approved once Infra team has created
the apache/fineract-cn-* Docker Hub repositories.

I have documented how Docker Hub builds the images here:
https://cwiki.apache.org/confluence/display/FINERACT/DockerHub+images

Juhan

>


Re: [ Discussion ] ORM Migration

2019-07-01 Thread Juhan Aasaru
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 () 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
>  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*
>


Re: finreact-cn demo server startup problems

2019-06-15 Thread Juhan Aasaru
Hi Jens,

> (Now I need to look for bigger hardware...)
I suggest running demo server in lite mode then it only starts a few
services.

> However at the Wiki there is...
demo server needs to start other micro services (jar files).
the recommended option (that for some reason didn't work in your case) has
crafted a pom.xml file that
(when running mvn package) downloads all the needed jar files to your
computer into
 /⁨.m2⁩/repository⁩/org⁩/apache⁩/fineract⁩/cn/...

If you just run 'gradlew publishToMavenLocal'
it creates the jar file from source and places it to the same
.m2/repository/... directory
but it only creates one micro service (so you need to run this for each
micro service separately).

I hope this helps to understand better what is happening behind the scenes.

Juhan


Kontakt Jens Wilke () kirjutas kuupäeval R, 14.
juuni 2019 kell 18:19:

> Hi Juhan!
>
> Thanks for the quick reply!
>
> On Freitag, 14. Juni 2019 15:49:09 CEST Juhan Aasaru wrote:
> > I have been working on simplifying build instructions.
> > One of my recent additions was this option: "1. Recommended: You clone
> > demo-server and let it download all dependendent fineract-cn-*
> libraries..."
> > I tested it locally without problems but in your case it seems from the
> > logs that there are artifacts missing from local user_home/.m2 directory
>
> That's a good hint, my .m2/repository directory is almost empty.
>
> On the README.md it says:
> gradlew publishToMavenLocal
>
> However at the Wiki there is:
> cd scripts/dependencies_to_local_maven/
> mvn package
>
> Populating the repo with the latter seems to work out.
> (Now I need to look for bigger hardware...)
>
> Maybe the README.md should be updated and get a link to the Wiki?
>
> Best,
>
> Jens
>
> --
> "Everything superfluous is wrong!"
>
>// Jens Wilke - headissue GmbH - Germany
>  \//  https://headissue.com
>
>
>


Re: finreact-cn demo server startup problems

2019-06-14 Thread Juhan Aasaru
Hi Jens

I have been working on simplifying build instructions.
One of my recent additions was this option: "1. Recommended: You clone
demo-server and let it download all dependendent fineract-cn-* libraries..."
I tested it locally without problems but in your case it seems from the
logs that there are artifacts missing from local user_home/.m2 directory
You could try switching to "option #2 (You clone Fineract CN repositories
directly").
You shouldn't need to revert anything you have done this far.

Juhan


Kontakt Jens Wilke () kirjutas kuupäeval R, 14.
juuni 2019 kell 16:27:

> Hi There,
>
> I'd like to get some overview of the project and thought starting with the
> demo server is a good idea.
>
> I try to run it under Ubuntu 18.04 and I use the JDK included in Ubuntu
> which is a recent Java 8:
> java -version
> openjdk version "1.8.0_212"
> OpenJDK Runtime Environment (build
> 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
> OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
>
> I clone and build with:
>
> git clone https://github.com/apache/fineract-cn-demo-server.git
> ./gradlew publishToMavenLocal
>
> Cloning and building runs without problem.
>
> Then I try to start with:
> cd build/libs
> java -jar -Ddemoserver.lite=true demo-server-0.1.0-BUILD-SNAPSHOT.jar
>
> As I understand from the Wiki page, there are no external services needed
> since MySQL, cassandra and ActiveMQ will be provided internally.
> However I get a bunch of errors, see below. Maybe any hints or directions
> how I can further debug this?
>
> Best,
>
> Jens
>
> Here is the complete startup output:
>
> JUnit version 4.12
>
>   .     ___ _ _
>  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
> ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
>  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
>   '  || .__|_| |_|_| |_\__, | / / / /
>  =|_|==|___/=/_/_/_/
>  :: Spring Boot ::(v1.4.1.RELEASE)
>
>
>   .     ___ _ _
>  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
> ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
>  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
>   '  || .__|_| |_|_| |_\__, | / / / /
>  =|_|==|___/=/_/_/_/
>  :: Spring Boot ::(v1.4.1.RELEASE)
>
> .13:17:31.161 [pool-3-thread-1] ERROR o.a.cassandra.service.StartupChecks
> - cassandra.jmx.local.port missing from cassandra-env.sh, unable to start
> local JMX service.
> Resolving artifact org.apache.fineract.cn
> .provisioner:service-boot:jar:0.1.0-BUILD-SNAPSHOT
> Resolving metadata 
> org.apache.fineract.cn.provisioner:service-boot:0.1.0-BUILD-SNAPSHOT/maven-metadata.xml
> from /home/vagrant/.m2/repository (enhanced)
> Resolved metadata 
> org.apache.fineract.cn.provisioner:service-boot:0.1.0-BUILD-SNAPSHOT/maven-metadata.xml
> from /home/vagrant/.m2/repository (enhanced)
> Resolved artifact 
> org.apache.fineract.cn.provisioner:service-boot:jar:0.1.0-BUILD-SNAPSHOT
> from null
> EE13:17:43.177 [ActiveMQ Transport Server Thread Handler:
> tcp://localhost:61616] ERROR o.a.a.broker.TransportConnector - Could not
> accept connection : java.lang.InterruptedException
> 13:17:43.370 [DefaultMessageListenerContainer-1] ERROR
> o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS Connection
> for destination 'portfolio-v1' - retrying using FixedBackOff{interval=5000,
> currentAttempts=0, maxAttempts=unlimited}. Cause: Error while attempting to
> retrieve a connection from the pool; nested exception is
> javax.jms.JMSException: Could not connect to broker URL:
> tcp://localhost:61616. Reason: java.net.ConnectException: Connection
> refused (Connection refused)
> 13:17:43.372 [DefaultMessageListenerContainer-1] ERROR
> o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS Connection
> for destination 'office-v1' - retrying using FixedBackOff{interval=5000,
> currentAttempts=0, maxAttempts=unlimited}. Cause: Error while attempting to
> add new Connection to the pool; nested exception is javax.jms.JMSException:
> Could not connect to broker URL: tcp://localhost:61616. Reason:
> java.net.ConnectException: Connection refused (Connection refused)
> 13:17:43.381 [DefaultMessageListenerContainer-1] ERROR
> o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS Connection
> for destination 'identity-v1' - retrying using FixedBackOff{interval=5000,
> currentAttempts=0, maxAttempts=unlimited}. Cause: Error while attempting to
> add new Connection to the pool; nested exception is javax.jms.JMSException:
> Could not connect to broker URL: tcp://localhost:61616. Reason:
> java.net.ConnectException: Connection refused (Connection refused)
> 13:17:43.385 [DefaultMessageListenerContainer-1] ERROR
> o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS Connection
> for destination 'identity-v1' - retrying using FixedBackOff{interval=5000,
> currentAttempts=0, maxAttempts=unlimited}. Cause: Error while attempting to
> add new Connection to the pool; nested exception is 

Re: Issues downloading updated artifact from jfrog artifactory

2019-06-12 Thread Juhan Aasaru
Michael,

thanks for starting up a discussion on this. I think it is an important
topic that deserves attention.
The truly correct way would be creating versions and use them instead.
So if one would now tag fineract-cn-lang with version 0.0.0.1 in github
then travis would build a version and
upload it to Artifactory under libs-release and it would be available
forever (since it is a version and not a snapshot).

Using the latest snapshot doesn't guarantee anything - any funcitonality
might still break at any point of time
causing a lot of confusion and lots of lost hours in debugging.

Since we have an automatic system in place to release versions (all that
needs to be done is to tag the same version in github web
for each fineract-cn-* repository) I propose we just start creating 0.0.0.x
versions whenever we think it is required.
In my opinion we don't need to perform time consuming release and testing
for these releases as their idea is just to produce common ground for
everyone.
And ideally we could automate the release creating procedure so it would
just require a few clicks.

Regarding snapshots - then you are correct - eventually the old snapshots
will be removed from the Artifactory.
To clarify my idea - if anyone has trouble fetching the latest snapshot
using "generic" url
then the workaround would be always to perform two steps in a row:
1) get the unique url of the latest version
2) pull snapshot from that url.
And not hard code the unique url anywhere.

I hope we get a good discussion on the topic of just starting to create
releases / versions.

Juhan





Kontakt Michael Vorburger () kirjutas kuupäeval K, 12.
juuni 2019 kell 09:51:

> Hello,
>
> On Wed, Jun 12, 2019 at 8:16 AM Juhan Aasaru  wrote:
>
>> Hi Courage,
>>
>> I checked, the artifact is there in the repository. But trying to get
>> latest artifact just by generic url like:
>>
>> http://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-SNAPSHOT.jar
>> can be unrelyiable as some old version could have been cached on the way.
>>
>
> may I respectfully disagree with this? I would argue the opposite, and
> suggest that it's better to use the "generic" URLs (those with the
> -SNAPSHOT, without that timestamp).
>
> For me an e.g. "wget
> http://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-SNAPSHOT.jar;
> seems to work just fine, so what's actually the issue?
>
>
>> The best way would be to determine the unique filename of the latest
>> version and then use that instead.
>> You can find the unique filename of the latest artifact like this:
>>
>> https://mifos.jfrog.io/mifos/api/search/latestVersion?g=org.apache.fineract.cn=lang=0.1.0-BUILD-SNAPSHOT=libs-snapshot-local
>> currently returns "0.1.0-BUILD-20190607.052703-26"
>> and then pull it like this (added "lang-" and ".jar" to the url):
>>
>> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-20190607.052703-26.jar
>>
>
> For a one time manual use it's OK to use a URL like this. You wrote "I am
> just want to manually download the artefact and run the jar file" so it's
> probably all good.
>
> More for general background: If one were to hard code this into say some
> script, you risk that it breaks soon. The reason is that Maven repository
> manager software such as JFrog or Sonatype Nexus (same functionality) will
> keep only a handful (configurable) number of timestamps for any given
> SNAPSHOT version. So as new 0.1.0-BUILD-SNAPSHOT versions are deployed in
> the future, the 20190607.052703-26 could well very get automatically
> cleaned up and disappear again.
>
> I updated the documentation with troubleshooting section where I described
>> the steps in more detail:
>>
>> https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory#Fineract-CNArtifactory-Troubleshooting
>>
>> I hope that helps.
>>
>
> Very nice write up, thank you!!
>
>
>> Kind regards
>> Juhan
>>
>>
>> Kontakt Courage Angeh () kirjutas kuupäeval T,
>> 11. juuni 2019 kell 22:24:
>>
>>> Hi Cajetan,
>>>
>>> Thanks for the suggestion. But I am not running any fineract-cn service
>>> so my question is not related to the .m2 directory.
>>>
>>> I am just want to manually download the artefact and run the jar file so
>>> that I can generate some RSA keys for a deployment environment.
>>>
>>> Regards,
>>> Courage.
>>>
>>>
>>> On Tue, Jun 11, 2019 at 3:02 PM Cajetan Rodrigues 
>>> wrote

Re: Issues downloading updated artifact from jfrog artifactory

2019-06-12 Thread Juhan Aasaru
Hi Courage,

I checked, the artifact is there in the repository. But trying to get
latest artifact just by generic url like:
http://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-SNAPSHOT.jar
can be unrelyiable as some old version could have been cached on the way.

The best way would be to determine the unique filename of the latest
version and then use that instead.
You can find the unique filename of the latest artifact like this:
https://mifos.jfrog.io/mifos/api/search/latestVersion?g=org.apache.fineract.cn=lang=0.1.0-BUILD-SNAPSHOT=libs-snapshot-local
currently returns "0.1.0-BUILD-20190607.052703-26"
and then pull it like this (added "lang-" and ".jar" to the url):
https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-20190607.052703-26.jar

I updated the documentation with troubleshooting section where I described
the steps in more detail:
https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory#Fineract-CNArtifactory-Troubleshooting

I hope that helps.

Kind regards
Juhan


Kontakt Courage Angeh () kirjutas kuupäeval T, 11.
juuni 2019 kell 22:24:

> Hi Cajetan,
>
> Thanks for the suggestion. But I am not running any fineract-cn service so
> my question is not related to the .m2 directory.
>
> I am just want to manually download the artefact and run the jar file so
> that I can generate some RSA keys for a deployment environment.
>
> Regards,
> Courage.
>
>
> On Tue, Jun 11, 2019 at 3:02 PM Cajetan Rodrigues 
> wrote:
>
>> Also note that the .me repo is found in the users/ in C drive
>> folder.
>>
>> M2 folder contains all your dependencies.
>>
>>
>>
>> On Wed, Jun 12, 2019, 12:26 AM Cajetan Rodrigues 
>> wrote:
>>
>>> I have fallen into such issues before.
>>> So if you are on windows, a folder known as *.m2* is auto-created.
>>> Just delete that and restart STS (or other S/W).
>>> It will take a long time, downloading the repositories, but it should
>>> then work fine.
>>>
>>> Regards,
>>> Cajetan Rodrigues.
>>>
>>> On Wed, 12 Jun 2019 at 00:16, Courage Angeh 
>>> wrote:
>>>
 Hi Juhan,

 Hope this email finds you well.

 I merged the recent changes you made to fineract-cn-lang but when I
 visit the online artefact, I see that the artefact was modified was
 09-Apr-2019.

 Based on this documentation:
 https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory
 I presume that when a PR is merged, I should be able to get the updates
 via 0.1.0-BUILD-SNAPSHOT
 .
 However, when I visit the artifactory, it shows that the artefact was last
 updated on the 9th of April 2019.

 Please, can you help me out?

 Regards,
 Courage.

>>>


Re: fineract-cn-containers issue when starting

2019-06-05 Thread Juhan Aasaru
Hi Courage,

I came to an idea how to generate RSA keys easier:
https://github.com/apache/fineract-cn-lang/pull/10
With this there is no need to implement separate service to provision RSA
keys, the generator can be called like this:

java -cp lang-0.1.0-BUILD-SNAPSHOT.jar
org.apache.fineract.cn.lang.security.RsaKeyPairFactory MODE > rsa.keys

It has two modes:

UNIX mode generates a file that sets the keys as Unix environment variables
(then you use them with 'source rsa.keys')
and SPRING mode - keys can be passed directly to a Spring application with
--spring.config.location=file:./rsa.keys

Juhan

Kontakt Courage Angeh () kirjutas kuupäeval R, 24.
mai 2019 kell 15:08:

> Hello,
>
> I have updated the containerization project to fix the bug with the RSA
> keys.
>
> This new update solves the problem by providing a minimal service
> dedicated to generating RSA keys (like a bash job).
> The bash and docker-compose scripts were also updated to reflect the new
> changes.
>
> With this progress, I should be able to fix up the deployment with
> kubernetes and docker swarm.
>
> Regards,
> Courage.
>
> On Sat, May 4, 2019 at 11:04 AM Ed Cable  wrote:
>
>> Apata, thanks for your contribution thus far and your willingness to help
>> with documentation.
>>
>> Sorry for the delayed reply. You should now have the necessary privileges
>> for editing content on the wiki.
>>
>> Ed
>>
>> On Thu, May 2, 2019, 00:54 Babajide Apata 
>> wrote:
>>
>>> Hello Isaac,
>>>
>>> My confluence username is apatababajide
>>>
>>> can we loop Yannick or Ed into this conversation?
>>>
>>> So one of them can assign the right karma to me.
>>>
>>> Cheers
>>>
>>>
>>> On Tue, 30 Apr 2019 at 20:01, Isaac Kamga  wrote:
>>>
 Hello Apata,

 Thanks for volunteering to help.

 You just need to create an account on Confluence, give the account
 username to Yannick or Ed and the right karma will be allocated to you.

 Cheers,
 Isaac Kamga.

 On Tue, Apr 30, 2019 at 7:58 PM Babajide Apata 
 wrote:

> Hello Yannick, How can I help with the documentation on confluence?
>
> On Tue, 30 Apr 2019, 19:17 Awasum Yannick,  wrote:
>
>> Hi All,
>>
>> Courage, I think it will be a great idea to the new Service you are
>> working on with the rest of the community. Others might be able to help
>> that way.
>>
>> Also document the non scalable and scalable solution for managing the
>> keys on Confluence and create JIRA issues for these problems.
>>
>> What do you think?
>>
>> On Tue, Apr 30, 2019 at 3:30 PM Courage Angeh 
>> wrote:
>>
>>> I did not send a PR because like I earlier stated, the solution
>>> doesn't scale. Imagine if we scale the provisioner microservice to say 4
>>> instances, each instance will generate its own set of RSA keys( 4 
>>> private
>>> and public key pairs). Therefore managing the RSA keys becomes 
>>> difficult.
>>>
>>> I am working on a microservice dedicated to provision RSA keys. In
>>> the future, more responsibilities will be added to this microservice 
>>> but in
>>> the meantime, it will just provision RSA keys.
>>>
>>> Regards,
>>> Courage.
>>>
>>> On Tue, Apr 30, 2019 at 1:40 AM Babajide Apata <
>>> apatababaj...@gmail.com> wrote:
>>>
 Hi courage, my example is just for testing purpose, your solution
 is the best way to go because its scalable.

 You can do a PR to the project so others can take advantage of this
 new changes.

 Regards.

 On Tue, 30 Apr 2019, 06:19 Victor Manuel Romero Rodriguez, <
 vic_rom...@hotmail.com> wrote:

> Hi Courage,
>
> That is the right direction!
>
> Well...I  just missed to fork/clone your repository.
>
> https://github.com/Anh3h/fineract-cn-provisioner/
>
> I have used the apache's repositories. Why not to send a PR to the
> apache's main repository?
>
> Regards
>
> Victor
>
>
> El 29/04/19 a las 23:59, Courage Angeh escribió:
>
> Hi Victor and Juhan
>
> My provisioner microservice is different. It generates the RSA
> keys and distributes them to the other services. Yours doesn't do 
> that so
> that is why you get the error. Babajide solution quite similar to 
> mine does
> not scale. So now, I want to create a new microservice that will 
> amongst
> other things generate and distribute the RSA keys. If anyone comes up 
> with
> a better idea to manage the RSA keys in a scalable way please share 
> :-D.
> For now, I will just do that.
>
> Here are the changes I made to my version of provisioner:
> 

Re: Building and serving fineract-cn artifacts with jitpack.io

2019-05-24 Thread Juhan Aasaru
Hi Ebenezer,

I understand now what you want to do.
One way to see the failed rat report would be instructing travis (in
.travis.yml) to output contents of rat report to its logs like this:

after_failure:
  - cat build/reports/rat/index.html

If you think this adds value then you can test it out and create pull
requests.

Regarding notifications.
It seems I have somehow missed to create pull request with travis code for
fineract-cn-notifications repo.
I had all the code ready on my fork so the pull request is now out there
waiting for review.
Also travis.yml contains encrypted artifactory password that has to be
encrypted with public key created by travis for the specific repository.
Encrypted password cannot be copy-pasted from any other repository. So code
from your PR would fail in upload to artifactory after PR merge.

Kind regards
Juhan






Juhan

Kontakt Ebenezer Graham () kirjutas kuupäeval R,
24. mai 2019 kell 09:49:

> Hi Juhan,
>
> It's easy to see a compilation error however the experience which led to
> this suggestion was actually a rat report eg:
> https://travis-ci.com/apache/fineract-cn-notifications/builds/111233630
>
> I got a weird issue where all rat checks passed on my local dev but failed
> on the Pull Request
>
> https://github.com/apache/fineract-cn-notifications/pull/9#issuecomment-490977282
>
> I later had to simulate it on my personal Travis to export the HTML report
>
> This is why I suggested this. But on second thoughts, if compilation
> errors are well displayed then we can trade off the rat report or find a
> way to display that as well if it becomes a common issue.
>
> *At your service,*
>
> *Ebenezer Graham*
>
>
>
>
> On Fri, 24 May 2019 at 09:35, Juhan Aasaru  wrote:
>
>> Hi Ebenezer,
>>
>> thanks for the good feedback and proposing enhancements.
>>
>> If you use pull requests then (normally) only your own build can fail,
>> you shouldn't be able to merge any pull request that fails.
>> So the information that build failed is relevant only for the authors of
>> the pull request not all the developers of Fineract.
>> Develop branch should normally never fail (as long as anyone doesn't
>> bypass submitting the pull request).
>>
>> Regarding the logs - you can get the build logs directly from travis via
>> web.
>> For example - there is a failing pull request here at the moment:
>> https://github.com/apache/fineract-cn-demo-server/pull/27
>> If you expand Travis and then click
>>  The build
>> <https://travis-ci.com/apache/fineract-cn-demo-server/builds/111226324>
>> failed
>> then you get the full console output of the failing build.
>>
>> I hope I understood your poroblem right but feel free to elaborate.
>>
>> Kind regards
>> Juhan
>>
>>
>>
>> Kontakt Ebenezer Graham () kirjutas kuupäeval
>> N, 23. mai 2019 kell 23:41:
>>
>>> Hi Community / Juhan,
>>>
>>> Nice job with the Travis CI integration. They are working nicely! In
>>> addition, I want to suggest an idea.
>>>
>>> Can we have an after failure procedure in the .travis.yml to make the
>>> log output of a failed build available to Fineract developers?
>>>
>>> As you may already know, with TravisCI, there is no way to login/ssh
>>> into a build machine to inspect the job's log output interactively. And
>>> so for instance, zipping and publishing rat reports, component-test and
>>> service build logs for analysis will come in handy for a number of
>>> developers as we venture into CI/CD.
>>>
>>> I believe the common approach is by defining an after_failure script to
>>> dump the logs in to log aggregator of our choosing. The major problem here
>>> will be "where to publish the logs"
>>>
>>> Also, I will create an issue on Jira to keep track of this suggestion.
>>>
>>> Looking forward to your response.
>>>
>>>
>>> *At your service,*
>>>
>>> *Ebenezer Graham*
>>>
>>>
>>>
>>>
>>> On Thu, 25 Apr 2019 at 15:43, Juhan Aasaru  wrote:
>>>
>>>> Hey,
>>>>
>>>> thank you for feedback and help Vishwas and Courage.
>>>> I have now created 30 pull requests for getting travis to build and
>>>> upload to artifactory, all linked here ander Issue links:
>>>> https://issues.apache.org/jira/browse/FINCN-148
>>>> Its mostly copy-and-paste. Travis now builds all pull requests
>>>> including the requests created by me.
>>>>
>>>> For identity I a

Re: Building and serving fineract-cn artifacts with jitpack.io

2019-05-23 Thread Juhan Aasaru
Hi Ebenezer,

thanks for the good feedback and proposing enhancements.

If you use pull requests then (normally) only your own build can fail, you
shouldn't be able to merge any pull request that fails.
So the information that build failed is relevant only for the authors of
the pull request not all the developers of Fineract.
Develop branch should normally never fail (as long as anyone doesn't bypass
submitting the pull request).

Regarding the logs - you can get the build logs directly from travis via
web.
For example - there is a failing pull request here at the moment:
https://github.com/apache/fineract-cn-demo-server/pull/27
If you expand Travis and then click
 The build
<https://travis-ci.com/apache/fineract-cn-demo-server/builds/111226324>
failed
then you get the full console output of the failing build.

I hope I understood your poroblem right but feel free to elaborate.

Kind regards
Juhan



Kontakt Ebenezer Graham () kirjutas kuupäeval N,
23. mai 2019 kell 23:41:

> Hi Community / Juhan,
>
> Nice job with the Travis CI integration. They are working nicely! In
> addition, I want to suggest an idea.
>
> Can we have an after failure procedure in the .travis.yml to make the log
> output of a failed build available to Fineract developers?
>
> As you may already know, with TravisCI, there is no way to login/ssh into
> a build machine to inspect the job's log output interactively. And so for
> instance, zipping and publishing rat reports, component-test and service
> build logs for analysis will come in handy for a number of developers as we
> venture into CI/CD.
>
> I believe the common approach is by defining an after_failure script to
> dump the logs in to log aggregator of our choosing. The major problem here
> will be "where to publish the logs"
>
> Also, I will create an issue on Jira to keep track of this suggestion.
>
> Looking forward to your response.
>
>
> *At your service,*
>
> *Ebenezer Graham*
>
>
>
>
> On Thu, 25 Apr 2019 at 15:43, Juhan Aasaru  wrote:
>
>> Hey,
>>
>> thank you for feedback and help Vishwas and Courage.
>> I have now created 30 pull requests for getting travis to build and
>> upload to artifactory, all linked here ander Issue links:
>> https://issues.apache.org/jira/browse/FINCN-148
>> Its mostly copy-and-paste. Travis now builds all pull requests including
>> the requests created by me.
>>
>> For identity I also changed the Dockerfile to wget the artifact from
>> Artifcatory.
>> I didn't add this to any other project yet (I plan to keep it a separate
>> task).
>>
>> I hope some reviewer has a chance to go over my pull requests.
>>
>> Kind regards
>> Juhan
>>
>>
>>
>> Kontakt Courage Angeh () kirjutas kuupäeval R,
>> 12. aprill 2019 kell 02:27:
>>
>>> Hi Juhan,
>>>
>>> Nice work!. The code base and documentation looks good.
>>>
>>> Regards,
>>> Courage.
>>>
>>> On Thu, Apr 11, 2019 at 7:16 PM Vishwas Babu <
>>> vish...@confluxtechnologies.com> wrote:
>>>
>>> > +1
>>> > Looks good to me
>>> >
>>> >
>>> > Regards,
>>> > Vishwas
>>> >
>>> >
>>> >
>>> > On Thu, Apr 11, 2019 at 9:13 AM Juhan Aasaru  wrote:
>>> >
>>> > > Hi!
>>> > >
>>> > > I have proof-of-concept ready and I have managed to build and publish
>>> > > fineract-cn-identity artifacts with Travis.
>>> > > All the fineract-cn-* projects that idenity depends on I made forks
>>> and
>>> > set
>>> > > Travis to build and publish those artifacts.
>>> > > Before I go over rest of the projects and create pull requests please
>>> > have
>>> > > a look and comment if you have time
>>> > > (I think most important is to agree on artifact naming for
>>> non-develop
>>> > > brannches and review changes to *.gradle files)
>>> > >
>>> > > The idea is that Travis builds snapshot artifacts and uploads them to
>>> > > https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
>>> > > (I created user "travis-ci" to artifactory with upload permissions
>>> and
>>> > > encrypted its password for each repository)
>>> > > Travis detects branch automatically and if branch=develop (in my code
>>> > > currently i have set branch=travis) then it uses version set in
>>> > > build.gradle
>>> > > For any other bra

Re: Fineract CN observations from a newcomer

2019-05-03 Thread Juhan Aasaru
Hi!

good point, Awasum.
it seems database "playground" is created but inside it there are no tables
created.

Juhan

Kontakt Awasum Yannick () kirjutas kuupäeval R, 3. mai
2019 kell 12:50:

> Thanks very much Juhan for the thorough QA and Dev work.
>
> I learnt alot.
>
> Is the playground postgres DB been created and used?
>
> On Fri, May 3, 2019 at 9:18 AM Juhan Aasaru  wrote:
>
>> Hi Isaac,
>>
>> Sorry abou the delay in my response. I did test out your code now and
>> found some issues.
>>
>> Here is what I did:
>> I pulled the newest code from your forks.
>> I'm running PostgreSQL and Cassandra inside Docker, so I cleaned the
>> containers to loose any previous state.
>>
>> Then I ran:
>>
>> java -Ddemoserver.persistent=true -Ddemoserver.provision=true
>> -Dcustom.cassandra.contactPoints=127.0.0.1:9042
>> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
>> -Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar
>>
>> In the logs I see that the migrations to database get applied without
>> errors and the applications get started.
>> There was however an error by Provisioner that database "seshat" didn't
>> exist but it seems that the service
>> managed to recover fromt his and create the database itself. Or should I
>> have created database "seshat" myself?
>>
>> Then I started fims-web-app and I managed to log in.
>> What I didn't manage to do was to create an headquarter office
>>
>> I filled in the details in fims-web-app and from developer console under
>> Networking I see
>> that the request is sent to http://localhost:4200/api/office/v1/offices
>> and it gets 202 (Accepted) as response:
>> Payload:
>> { "identifier": "OF123", "name": "Office name", "description": null,
>> "address": { "street": "Street", "city": "City", "postalCode": "",
>> "region": null } }
>>
>> But when the app makes a request:
>>
>> http://localhost:4200/api/office/v1/offices/OF123
>> it gets 404 (not found).
>>
>> In the logs I see:
>>
>> 10:06:11.670 [async-processor-4] WARN  o.h.e.jdbc.spi.SqlExceptionHelper
>> - SQL Error: 0, SQLState: 23502
>> 10:06:11.671 [async-processor-4] ERROR o.h.e.jdbc.spi.SqlExceptionHelper
>> - ERROR: null value in column "id" violates not-null constraint
>>   Detail: Failing row contains (null, null, OF123, Office name, null,
>> operator, 2019-05-03 10:06:11.663, null, null).
>>
>> If I compare the new Postgre DB scripts with old MariaDB scripts then I
>> see that in MariaDB/MySQL the ID fields are AUTO_INCREMENT:
>>
>>   id   BIGINTNOT NULL AUTO_INCREMENT,
>>
>> but in your postgresql flyway *.sql scripts you don't create any
>> sequences and you don't use serial type. You have just:
>>
>> id BIGINT NOT NULL,
>>
>> So there is nothing to create ID-s for new records. So I changed in
>> fineract-cn-office/*.sql files all "id BIGINT NOT NULL" into:
>>
>> id SERIAL,
>>
>> this is basically Postgres version of AUTO_INCREMENT (and you don't have
>> to specify data type), you can read more abut it here:
>> http://www.postgresqltutorial.com/postgresql-serial/
>> Now I cleaned Posgre database, rebuilt fineract-cn-office and restarted
>> the server and then I managed to create offices
>> in fims-web-app.
>>
>> So what you need to do is everywhere where there was AUTO_INCREMENT in
>> *.sql files you need to use SERIAL.
>>
>> So almost there! Please let me know if you have gone over all the *sql
>> files and I will test again.
>>
>> Kind regards
>> Juhan
>>
>> Kontakt Isaac Kamga () kirjutas kuupäeval N, 27.
>> detsember 2018 kell 03:26:
>>
>>> Hey Juhan,
>>>
>>> Yes, I've been following the updates to the How-To-Build page.
>>>
>>> I'm happy the clarification was helpful and you've improved Step 3. I
>>> also
>>> updated the demo-server and service-starter repositories to enable the
>>> Fineract CN build happen in less time. Kindly update your respective
>>> repositories and build once more to provide more feedback.
>>>
>>> Keep up the good work.
>>>
>>> Cheers,
>>> Isaac Kamga.
>>>
>>> On Wed, Dec 26, 2018 at 11:14 PM Juhan Aasaru  wrote:
>>>
>>> > Thanks, Isaac for clearing up the confusion.
>>> > Based on your explanations I also restructured Step 3 to make it
>>> easier to
>>> > follow.
>>> > Please review if you have a moment.
>>> >
>>> > Kind regards
>>> > Juhan Aasaru
>>> >
>>>
>>


Re: [ANNOUNCE] Welcome Juhan Aasaru as Fineract committer

2019-05-01 Thread Juhan Aasaru
Hi everyone!

Thank you all for good wishes and for accepting me as Apache Fineract
committer.
I plan to keep up contributing to the project and currently my main goal is
to make
Fineract-cn projects easier for anyone to set up and work with.

Kind regards
Juhan Aasaru

Kontakt Ed Cable () kirjutas kuupäeval K, 1. mai 2019
kell 17:17:

> Congratulations Juhan and thank you for all your contributions thus far.
>
> Ed
>
> On Wed, May 1, 2019 at 5:09 AM Mua Rachmann  wrote:
>
>> Welcome Juhan,
>> Congrats
>>
>> On Wed, May 1, 2019, 11:45 Ruphine Kengne 
>> wrote:
>>
>>> Congratulations Juhan. Keep up
>>>
>>> On Wed, 1 May 2019 at 11:34, Nkep Kerlyn  wrote:
>>>
>>>> Congrats Juhan!!
>>>>
>>>> On Tue, Apr 30, 2019, 8:20 AM Awasum Yannick >>>
>>>>> Hi All,
>>>>>
>>>>> I am happy to announce that Juhan Aasaru has been voted in as a
>>>>> Fineract Committer.
>>>>>
>>>>> Juhan has been in the community for just over 6 months now and has
>>>>> already shown how valuable they are to our project.
>>>>>
>>>>> Juhan has contributed to Fineract 1.x as well as Fineract CN in areas
>>>>> like Containerization and recently enabled Continuous Integration on
>>>>> Fineract CN. Juhan has also contributed to key discussions on the mailing
>>>>> list and also created and updated documentations to unblock new
>>>>> contributors. Thank you very much Juhan.
>>>>>
>>>>> Please join me in welcoming Juhan as a new Committer on Fineract.
>>>>>
>>>>> Thanks.
>>>>> Awasum Yannick.
>>>>> PMC Member, Apache Fineract
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
> --
> *Ed Cable*
> President/CEO, Mifos Initiative
> edca...@mifos.org | Skype: edcable | Mobile: +1.484.477.8649
>
> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>
>


Re: fineract-cn-containers issue when starting

2019-04-28 Thread Juhan Aasaru
Hi Victor,

I have the same goal as you - to figure out how the RSA keys should be
generated and then adjust the Dockerfiles to take them as parameters. I
know Courage has been working on finding a way to deploy the RSA keys in
secure way [1]. Courage, if you can, please share how you generate the RSA
keys yourself.

If I understand correctly then one should generate RSA keys before the
docker scripts are started and pass them to the containers during starting
them. But I don't have any readymade script for generating the RSA keys
yet. There must be logic how to do this somewhere in the demo server code
base.

There has been a long thread [2] (especially last 3 emails) in the list
that might give you a hint for a workaround which basically would be:

1. add more logging for provisioner to log all the RSA keys and modulos
2. start demo server
3. copy keys that provisioner printed out from logfiles
4. stop demo server
5. pass the keys to the docker containers during startup

Kind regards
Juhan

[1]
https://lists.apache.org/thread.html/31f71e5ab9118c43a4ce615c7de48f714a44eaf6dc94c00714614487@%3Cdev.fineract.apache.org%3E

[2]
https://lists.apache.org/thread.html/c9d738028c4b4365af33ec74c9899df3764af697eec8d4bccce235be@%3Cdev.fineract.apache.org%3E

Kontakt Victor Manuel Romero Rodriguez () kirjutas
kuupäeval E, 29. aprill 2019 kell 03:12:

> *Hello,*
>
>
> *I have just pulled the repository from *
>
> https://github.com/openMF/fineract-cn-containers
>
> *Then I execute the commands*
>
> 1. Run *bash migration_script.sh*
>
> 2. Run *bash start-up.sh*
>
> *But then it gives error messages:*
>
> Generating RSA keys...
> grep: logs/provisioner.log: No such file or directory
> Error response from daemon: Container
> 18d9260749f1dc309acda9f11533773040ed8ace0060097a6e6721280171ae8d is not
> running
>
> Full log: https://pastebin.com/ixw4GihX
>
> *Looking at the docker logs of provisioner container I found this
> messages:*
>
> ***,
> APPLICATION FAILED TO START,
> ***,
> ,
> Description:,
> ,
> Binding to target
> org.apache.fineract.cn.provisioner.config.SystemProperties@4078695f
> failed:,
> ,
> Property: system.publicKey.timestamp,
> Value: null,
> Reason: may not be empty,
> ,
> Property: system.privateKey.exponent,
> Value: null,
> Reason: may not be null,
> ,
> Property: system.publicKey.modulus,
> Value: null,
> Reason: may not be null,
> ,
> Property: system.privateKey.modulus,
> Value: null,
> Reason: may not be null,
> ,
> Property: system.publicKey.exponent,
> Value: null,
> Reason: may not be null,
> ,
> ,
> Action:,
> ,
> Update your application's configuration,
>
>
> Full log: https://pastebin.com/AgDmSfNE
>
> Any clue?
>
> Regards
>
> Victor
>
>
>


Re: Building and serving fineract-cn artifacts with jitpack.io

2019-04-25 Thread Juhan Aasaru
Hey,

thank you for feedback and help Vishwas and Courage.
I have now created 30 pull requests for getting travis to build and upload
to artifactory, all linked here ander Issue links:
https://issues.apache.org/jira/browse/FINCN-148
Its mostly copy-and-paste. Travis now builds all pull requests including
the requests created by me.

For identity I also changed the Dockerfile to wget the artifact from
Artifcatory.
I didn't add this to any other project yet (I plan to keep it a separate
task).

I hope some reviewer has a chance to go over my pull requests.

Kind regards
Juhan



Kontakt Courage Angeh () kirjutas kuupäeval R, 12.
aprill 2019 kell 02:27:

> Hi Juhan,
>
> Nice work!. The code base and documentation looks good.
>
> Regards,
> Courage.
>
> On Thu, Apr 11, 2019 at 7:16 PM Vishwas Babu <
> vish...@confluxtechnologies.com> wrote:
>
> > +1
> > Looks good to me
> >
> >
> > Regards,
> > Vishwas
> >
> >
> >
> > On Thu, Apr 11, 2019 at 9:13 AM Juhan Aasaru  wrote:
> >
> > > Hi!
> > >
> > > I have proof-of-concept ready and I have managed to build and publish
> > > fineract-cn-identity artifacts with Travis.
> > > All the fineract-cn-* projects that idenity depends on I made forks and
> > set
> > > Travis to build and publish those artifacts.
> > > Before I go over rest of the projects and create pull requests please
> > have
> > > a look and comment if you have time
> > > (I think most important is to agree on artifact naming for non-develop
> > > brannches and review changes to *.gradle files)
> > >
> > > The idea is that Travis builds snapshot artifacts and uploads them to
> > > https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
> > > (I created user "travis-ci" to artifactory with upload permissions and
> > > encrypted its password for each repository)
> > > Travis detects branch automatically and if branch=develop (in my code
> > > currently i have set branch=travis) then it uses version set in
> > > build.gradle
> > > For any other branch it sets artifact version to branchname-SNAPSHOT
> > > If one creates a release in github then it uses tag as version and
> > uploads
> > > it under different repoKey,
> > > so that it will be available here:
> > > https://mifos.jfrog.io/mifos/libs-release/org/apache/fineract/cn/
> > > Travis will also build all pull requests but those artifacts are not
> > > uploaded anywhere.
> > >
> > > I have documented the usage and setup here:
> > >
> > >
> >
> https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory
> > >
> > > Here is travis build log for Idenity project:
> > > https://travis-ci.com/aasaru/fineract-cn-identity
> > >
> > > And the code changes of fineract-cn-idenity:
> > >
> > >
> >
> https://github.com/apache/fineract-cn-identity/compare/develop...aasaru:travis
> > > All the other repos github.com/aasaru/fineract-cn-* will have similar
> > > changes
> > > (travis.sh will be identical everywhere and .travis.yml as well (except
> > the
> > > encrypted password)
> > >
> > > Please let me know if you have any comments or if you have none then I
> > will
> > > create pull requests next week.
> > >
> > > Kind regards
> > > Juhan
> > >
> > >
> > > Kontakt Isaac Kamga () kirjutas kuupäeval P,
> 31.
> > > märts 2019 kell 18:59:
> > >
> > > > Hello Juhan,
> > > >
> > > > Yes, get started with the proof of concept. You'll also need to
> create
> > > > issues for the CI/CD work you're doing and probably name branches
> after
> > > the
> > > > issue number.
> > > >
> > > > Vishwas mentioned that a Jfrog open source license is available for
> > > Apache
> > > > Fineract. I think he's best placed to get those details though to
> you.
> > > >
> > > > More grease to your elbows.
> > > >
> > > > Cheers,
> > > > Isaac Kamga.
> > > >
> > >
> >
>


Re: Fineract CN Demo server setup

2019-04-22 Thread Juhan Aasaru
..@gmail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Alek,
> > > > > > > >
> > > > > > > > I have migrated the Docker files to their respective Fineract
> > > > > > > repositories.
> > > > > > > > Here are draft PRs for three microservices. Please review it
> > and
> > > I
> > > > > will
> > > > > > > > appreciate your feedback on any updates:
> > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > >
> > > > > > > > You could review already built docker images on
> > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > It's just a rough sample though.
> > > > > > > >
> > > > > > > > In the main time, I am updating the Docker-compose file so it
> > > spins
> > > > > up a
> > > > > > > > swarm cluster.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Courage.
> > > > > > > >
> > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > couragean...@gmail.com
> > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > >> Hi Alek,
> > > > > > > >>
> > > > > > > >> I think we can start with that.
> > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > >>
> > > > > > > >> Thanks,
> > > > > > > >> Courage
> > > > > > > >>
> > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > >> chee...@monkeysintown.com> wrote:
> > > > > > > >>
> > > > > > > >>> Hi Courage,
> > > > > > > >>>
> > > > > > > >>> ... would be great if you could help out... especially with
> > > your
> > > > > > > >>> knowledge
> > > > > > > >>> about Docker.
> > > > > > > >>>
> > > > > > > >>> Preparing the Git repositories should be fairly easy...
> > another
> > > > > nice
> > > > > > > >>> thing
> > > > > > > >>> to have: some kind of CI server to build and push images to
> > > > Docker
> > > > > hub;
> > > > > > > >>> not
> > > > > > > >>> sure if Fineract is currently using Jenkins at Apache... in
> > any
> > > > > case
> > > > > > > not
> > > > > > > >>> a
> > > > > > > >>> big thing... setting up things with Travis or similar is
> not
> > a
> > > > big
> > > > > > > deal.
> > > > > > > >>>
> > > > > > > >>> Anything else you can think of?
> > > > > > > >>>
> > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > couragean...@gmail.com>
> > > > > > > >>> wrote:
> > > > > > > >>>
> > > > > > > >>> > Hi Aleksandar,
> > > > > > > >>> >
> > > > > > > >>> > I can work with you on migrating the Fineract services
> from
> > > > > Docker
> > > > > > > >>> compose
> > > > > > > >>> > to Docker Swarm.
> > > > > > > >>> > Then pushing the Fineract images to Docker Hub so it's
> > easily
> > > > > > > >>> accessible.
> > > > >

Re: Building and serving fineract-cn artifacts with jitpack.io

2019-04-11 Thread Juhan Aasaru
Hi!

I have proof-of-concept ready and I have managed to build and publish
fineract-cn-identity artifacts with Travis.
All the fineract-cn-* projects that idenity depends on I made forks and set
Travis to build and publish those artifacts.
Before I go over rest of the projects and create pull requests please have
a look and comment if you have time
(I think most important is to agree on artifact naming for non-develop
brannches and review changes to *.gradle files)

The idea is that Travis builds snapshot artifacts and uploads them to
https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
(I created user "travis-ci" to artifactory with upload permissions and
encrypted its password for each repository)
Travis detects branch automatically and if branch=develop (in my code
currently i have set branch=travis) then it uses version set in build.gradle
For any other branch it sets artifact version to branchname-SNAPSHOT
If one creates a release in github then it uses tag as version and uploads
it under different repoKey,
so that it will be available here:
https://mifos.jfrog.io/mifos/libs-release/org/apache/fineract/cn/
Travis will also build all pull requests but those artifacts are not
uploaded anywhere.

I have documented the usage and setup here:
https://cwiki.apache.org/confluence/display/FINERACT/Fineract-CN+Artifactory

Here is travis build log for Idenity project:
https://travis-ci.com/aasaru/fineract-cn-identity

And the code changes of fineract-cn-idenity:
https://github.com/apache/fineract-cn-identity/compare/develop...aasaru:travis
All the other repos github.com/aasaru/fineract-cn-* will have similar
changes
(travis.sh will be identical everywhere and .travis.yml as well (except the
encrypted password)

Please let me know if you have any comments or if you have none then I will
create pull requests next week.

Kind regards
Juhan


Kontakt Isaac Kamga () kirjutas kuupäeval P, 31.
märts 2019 kell 18:59:

> Hello Juhan,
>
> Yes, get started with the proof of concept. You'll also need to create
> issues for the CI/CD work you're doing and probably name branches after the
> issue number.
>
> Vishwas mentioned that a Jfrog open source license is available for Apache
> Fineract. I think he's best placed to get those details though to you.
>
> More grease to your elbows.
>
> Cheers,
> Isaac Kamga.
>


Re: Road Map for deploying Fineract CN

2019-04-07 Thread Juhan Aasaru
> > > > don't
> > > > > > > > > need a GKE account.
> > > > > > > > >
> > > > > > > > > Patrick
> > > > > > > > >
> > > > > > > > > On Wed, Mar 13, 2019 at 2:05 PM Courage Angeh <
> > > > > > couragean...@gmail.com>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > The project is still under Mifos Initiative,
> > > > > > > > > > https://github.com/openMF/fineract-cn-containers
> > > > > > > > > >
> > > > > > > > > > Most of the Dockerfiles have been pushed to the different
> > > > > Finerect
> > > > > > CN
> > > > > > > > > > repositories.  The idea
> > > > > > > > > > is to have the compose file pull directly from Docker
> hub.
> > > > > > > > > >
> > > > > > > > > > On Wed, Mar 13, 2019 at 1:52 PM Awasum Yannick <
> > > > > awa...@apache.org>
> > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Thanks Courage. Please, Which Github repos ? Are they
> on
> > > > > Fineract
> > > > > > > > > Repos?
> > > > > > > > > > Do
> > > > > > > > > > > you want to put them there?
> > > > > > > > > > >
> > > > > > > > > > > On Wed, Mar 13, 2019 at 6:48 PM Courage Angeh <
> > > > > > > > couragean...@gmail.com>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > They are all on the GitHub repo.
> > > > > > > > > > > > Still working on the swarm thing though.
> > > > > > > > > > > >
> > > > > > > > > > > > Previously was updating the deployment for docker and
> > k8
> > > > > > > > > > simultaneously,
> > > > > > > > > > > > but my credits for my GKE account is finished so the
> K8
> > > > > scripts
> > > > > > > > are a
> > > > > > > > > > > > little behind.
> > > > > > > > > > > >
> > > > > > > > > > > > On Wed, Mar 13, 2019 at 1:42 PM Awasum Yannick <
> > > > > > > awa...@apache.org>
> > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi Courage,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Are the Docker Compose, Swarm scripts and K8
> scripts
> > > all
> > > > > > > > available
> > > > > > > > > on
> > > > > > > > > > > our
> > > > > > > > > > > > > Apache Github repos? I think that will be great.
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Wed, Mar 13, 2019 at 6:38 PM Courage Angeh <
> > > > > > > > > > couragean...@gmail.com>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Patrick and Myrle,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Actually, we started some work on Kubernetes.
> > > > > > > > > > > > > > If you have the physical resource to set-up
> > > Kubernetes
> > > > > and
> > > > > > > > > > implement
> > > > > > > > > > > > the
> > > > > > > > > > > > > > scripts to deploy with
> > > > > > > > > > > > > >  Fineract CN using k8 please go ahead to send
> your
> > > > > > > > contributions.
> > > > > >

Re: updates On Migration from MariaDB to PostgreSQL

2019-03-31 Thread Juhan Aasaru
I Isaac,

I pulled the changes and rebuilt the projects.

Now when I run (postgres and cassandra working locally):

java -Ddemoserver.persistent=true -Ddemoserver.provision=true
-Dcustom.cassandra.contactPoints=127.0.0.1:9042
-Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
-Ddemoserver.lite=true -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar

I get an error here:

11:18:42.066 [main] INFO  o.s.b.c.e.j.JettyEmbeddedServletContainer - Jetty
started on port(s) 2024 (http/1.1)
11:18:42.067 [main] INFO  o.s.c.n.e.EurekaDiscoveryClientConfiguration -
Updating port to 2024
11:18:42.072 [main] INFO  o.a.f.c.customer.CustomerApplication - Started
CustomerApplication in 16.423 seconds (JVM running for 17.342)
11:18:57.435 [qtp1479696465-21] INFO  o.a.f.c.l.c.ServiceExceptionFilter -
Responding with a service error ServiceError{code=409, message='Application
identity-v1 already exists!'}
11:18:57.464 [Thread-16] INFO
o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - Closing
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4d50efb8:
startup date [Sun Mar 31 11:12:52 EEST 2019]; parent:
org.springframework.context.annotation.AnnotationConfigApplicationContext@75a1cd57

I understand I have to use -Ddemoserver.provision=true flag to provision
the initial database so I won't be able to take that one out.

Juhan


Kontakt Isaac Kamga () kirjutas kuupäeval R, 29.
märts 2019 kell 04:17:

> Hey Juhan,
>
> I have updated the Pull request to fineract-cn-provisioner with a commit
> [1] which fixes the errors you're experiencing.
>
> I'll advise that you test using option -Ddemoserver.persistent=true and
> -Ddemoserver.lite=true and we're testing just the minimal set of services
> now. In fact,I tested and the tail of my logs showed thus
> *identity-v1 address:http://localhost:2021/identity/v1
> <
> https://www.google.com/url?q=http://localhost:2021/identity/v1=D=hangouts=1553910362598000=AFQjCNEjCID96mw3LF1ZIPmjEIQkHh_LcQ
> >*
>
> *office-v1 address:http://localhost:2023/office/v1
> <
> https://www.google.com/url?q=http://localhost:2023/office/v1=D=hangouts=1553910362598000=AFQjCNGjyk1BHroLddOTd0FhJUJG4zdVag
> >customer-v1
> address:http://localhost:2024/customer/v1
> <
> https://www.google.com/url?q=http://localhost:2024/customer/v1=D=hangouts=1553910362599000=AFQjCNGfcoJZIxmcsX34YeEXRUzS0oC2hA
> >*
> Albeit, this error [2] turned up related to the Notifications service. Just
> ignore it for now as it will be handled down the line during extensive
> integration testing.
>
> We can keep testing using -Ddemoserver.provision=true for later too when
> we've migrated and tested the individual services.
>
> Can you kindly update your provisioner repository and test once more and
> let's keep fixing ?
>
> [1]
>
> https://github.com/Izakey/fineract-cn-provisioner/commit/b83331b723f175003ccf069764414e4ab371662c
>
> [2] https://pastebin.com/DBzNyHir
>
> Cheers,
> Isaac Kamga.
>
> On Wed, Mar 27, 2019 at 10:23 PM Isaac Kamga 
> wrote:
>
> > Hello Juhan,
> >
> > Thank you for taking the time to do some testing.
> >
> > On Wed, Mar 27, 2019 at 10:56 AM Juhan Aasaru  wrote:
> >
> >> Hi Isaac,
> >>
> >> great initiative towards pushing to PostgreSQL.
> >>
> >> I looked at your instructions and tried to run your changes locally.
> >> The sh script came in handy to quickly clone and build everything that
> was
> >> needed.
> >> But then I got confused about provisioning.
> >>
> >> Question #1: How exactly I should run demo-server? I tried the following
> >> options:
> >>
> >> 1. I didn't have postgre and cassandra running locally.
> >>  java -jar -Ddemoserver.lite=true demo-server-0.1.0-BUILD-SNAPSHOT.jar
> >>
> >> resulted
> >>
> >> org.springframework.beans.factory.BeanCreationException: Error creating
> >> bean with name 'provisionerInitializer':
> >> Invocation of init method failed; nested exception is
> >> java.lang.IllegalStateException: Could not initialize service!
> >> Caused by: org.postgresql.util.PSQLException: FATAL: database "seshat"
> >> does
> >> not exist
> >>
> >
> > I haven't done testing using this option yet.
> >
> >
> >>
> >> 2. I started posgresql (and created a database seshat) and cassandra and
> >> ran:
> >> java -Ddemoserver.provision=true -Ddemoserver.persistent=true
> >> -Dcustom.cassandra.contactPoints=127.0.0.1:9042 \
> >> -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
> >> -Ddemoserver.lite=true  -jar demo-server-0.1.0-B

Re: Building and serving fineract-cn artifacts with jitpack.io

2019-03-31 Thread Juhan Aasaru
Hi!

Thank you for your feedback.
I can try to set up JFrog OSS Artifactory for Fineract CN.

I did some research. According to blog post [1] it should be possible to
build with Travis-CI and upload
snapshots to Jfrog OSS [2] which is free for open source projects. And oss
is meant for snapshots.

My first proof of concept would be to build poject fineract-cn-lang with
travis, get it to upload built snapshot to JFrog oss
and then configure fineract-cn-api (that depends on fineract-cn-lang) to
pull snapshots from jfrog oss and then
try to get travis build and publish fineract-cn-api snapshot artifacts to
OSS as well.

Isaac and Vishwas, could you please help me with getting access to JFrog
OSS.
If you could grant my github user (aasaru) temporarily access to these two
fineract projects (lang and api) then I would create
a separate branch "travis-ci-jfrong-oss" to both of the repos (and work
there). I don't think I would manage to set this
up only using forks (publishing to artifactory would be diffictult as it is
only for hand picked open source projects).

Kind regards
Juhan

[1]
http://grailsblog.objectcomputing.com/posts/2016/10/03/how-to-use-travis-to-build-and-deploy-your-plugin.html

[2] https://oss.jfrog.org/webapp/#/home








Kontakt Vishwas Babu () kirjutas kuupäeval
R, 29. märts 2019 kell 00:19:

> Hi Juhan,
>
> Thanks for taking this on!
>
> I would agree that 2 (changing the artifact name) and 3 aren't major
> concerns. Changing the group name, however, is less than ideal as both you
> and Isaac have pointed out.
>
> If you are considering alternatives, we do have an open-source license for
> https://jfrog.com/artifactory/ .
>
> Regards,
> Vishwas
>
>
>
> On Thu, Mar 21, 2019 at 7:53 AM Juhan Aasaru  wrote:
>
> > Hi community!
> >
> > I created a proof-of-concept how we could use jitpack.io for fineract-cn
> > projects. With this email I would start a discussion if and how we could
> > get these changes done. I hope you have some time to go through my rather
> > long email and maybe even look at the proof-of-concept that I put
> together
> > (references in the end of email) and join the discussion.
> >
> > My opinion is that although some changes are needed I feel that the
> > benefits are worth some of the inconveniences that come with some of the
> > renamings.
> >
> > So let's start from the beginning. I was looking into jitpack.io for two
> > reasons:
> >
> > 1) to add travis-ci to fineract-cn projects we need a mechanism to keep
> and
> > serve all the dependencies to other fineract-cn projects.
> > 2) to publish public docker images for fineract-cn projects then we need
> > some service (that is not someones personal computer) to build the jar-s
> > first.
> >
> > If you are not familiar with fineract-cn then I can give you a quick
> > example of the problem:
> > In order to build fineract-cn-portfolio you need (among other things)
> > fineract-cn-rhythm built first.
> > In order to build fineract-cn-rhythm you need fineract-cn-identity.
> > In order to build fineract-cn-identity you need fineract-cn-anubis.
> > In order to build fineract-cn-anubis you need fineract-cn-api
> > In order to build fineract-cn-api you need fineract-cn-lang.
> >
> > So jitpack.io should be just the service what is needed for this. While
> in
> > maven central you have to publish each version then jitpack just clones
> the
> > code from a public repo, builds it and if the build is successful starts
> to
> > serve it. You can refer to both latest successful build of a branch, to a
> > tagged version or use commit hash instead of a version number. So the
> > service is very flexible.
> >
> > My goal was to find out what changes (if any) would be needed to adapt.
> And
> > also build a proof-of-concept (not to stay only theoretical).
> >
> > 1. The first problem was that fineract-ch projects are hosted in github
> but
> > fineract-cn uses a domain name (org.apache.fineract.cn) instead of
> > com.github.username. Jitpack supports custom domain names but after some
> > tests and contacting with them (
> > https://github.com/jitpack/jitpack.io/issues/3781) it came clear that
> they
> > don't (yet) support subdomains (so org.apache would work but not
> > org.apache.fineract.cn).
> >
> > To overcome the first issue fineract-cn projects should change group
> names
> > of artifacts from org.apache.fineract.cn to com.github.apache (until
> > jitpack.io starts to support subdomains). For official releases in Maven
> > Central it would be possible still to use org.apache.fineract.cn group
> > names. Of course, it wo

Re: updates On Migration from MariaDB to PostgreSQL

2019-03-27 Thread Juhan Aasaru
Hi Isaac,

great initiative towards pushing to PostgreSQL.

I looked at your instructions and tried to run your changes locally.
The sh script came in handy to quickly clone and build everything that was
needed.
But then I got confused about provisioning.

Question #1: How exactly I should run demo-server? I tried the following
options:

1. I didn't have postgre and cassandra running locally.
 java -jar -Ddemoserver.lite=true demo-server-0.1.0-BUILD-SNAPSHOT.jar

resulted

org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'provisionerInitializer':
Invocation of init method failed; nested exception is
java.lang.IllegalStateException: Could not initialize service!
Caused by: org.postgresql.util.PSQLException: FATAL: database "seshat" does
not exist

2. I started posgresql (and created a database seshat) and cassandra and
ran:
java -Ddemoserver.provision=true -Ddemoserver.persistent=true
-Dcustom.cassandra.contactPoints=127.0.0.1:9042 \
-Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password
-Ddemoserver.lite=true  -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar

Initially applications started up one after anther (ProvisionerApplication,
RhythmApplication, OfficeApplication)
but CustomerApplication threw an exception:

11:50:39.377 [qtp1424482154-21] WARN  o.e.jetty.servlet.ServletHandler -
org.springframework.web.util.NestedServletException: Request processing
failed; nested exception is java.lang.IllegalStateException: Could not
insert org.apache.fineract.cn.provisioner.tenant info!
Caused by: org.postgresql.util.PSQLException: ERROR: relation
"seshat.tenants" does not exist

Question #2 - do I still need to have Mysql running? I see that you haven't
made code changes to identity
which as I understand still uses Mysql.

Kind regards
Juhan


Kontakt Isaac Kamga () kirjutas kuupäeval L, 23.
märts 2019 kell 04:31:

> Hello fineracters,
>
> Trust that you had a great week.
>
> I just finished migrating libraries PostgreSQL[1] and Test[2] from MariaDB
> to PostgreSQL, mostly adapting SQL statements & database connections to
> work with PostgreSQL and reverting back to Hibernate ORM until database
> migrations are completed.
>
> I have also migrated the "minimal" services viz provisioner[3], rhythm[4],
> office[5], template[6] and customer[7] from MariaDB to PostgreSQL. The
> Spring datasource credentials had to be incorporated into application.yaml
> files to make things work too.
>
> Given I updated service-starter [8] and demo-server [9], developers can
> test the migrated services when running the *-Ddemoserver.lite=true* option
> which builds the minimal set of services.
>
> You'll observe that some of the pull requests are heading to develop
> branches ( It appears comparing changes and creating PRs towards the same
> branch name from origin to upstream expires after a few minutes on
> Github... weird )
>
> Here is a script [10] to enable anyone clone and do an integration-test of
> the new changes using demo-server.
>
> Kindly test these changes and provide feedback.
>
> At Your Service,
> Isaac Kamga.
>
> [1] https://github.com/apache/fineract-cn-postgresql/pull/1
> [2] https://github.com/apache/fineract-cn-test/pull/7
> [3] https://github.com/apache/fineract-cn-provisioner/pull/6
> [4] https://github.com/apache/fineract-cn-rhythm/pull/8
> [5] https://github.com/apache/fineract-cn-office/pull/9
> [6] https://github.com/apache/fineract-cn-template/pull/6
> [7] https://github.com/apache/fineract-cn-customer/pull/10
> [8] https://github.com/apache/fineract-cn-service-starter/pull/8
> [9] https://github.com/apache/fineract-cn-demo-server/pull/27
> [10]
>
> https://github.com/Izakey/fineract-cn-demo-server/blob/FINCN-141/scripts/Unix/postgres-setup-lite.sh
>


Building and serving fineract-cn artifacts with jitpack.io

2019-03-21 Thread Juhan Aasaru
re/develop...mobjex:develop
https://github.com/apache/fineract-cn-api/compare/develop...mobjex:develop
https://github.com/apache/fineract-cn-lang/compare/develop...mobjex:develop
https://github.com/apache/fineract-cn-test/compare/develop...mobjex:develop
https://github.com/apache/fineract-cn-async/compare/develop...mobjex:develop
https://github.com/apache/fineract-cn-lang/compare/develop...mobjex:develop
and maybe a few others.

I'm looking forward to your feedback and questions.

Kind regards
Juhan Aasaru


Re: API and Channel Concepts

2019-03-15 Thread Juhan Aasaru
Hello!

This is a great discussion topic and definitely worth taking a little time
to think about it.

I agree that the design of Fineract 1.x APIs is way too weak to be used in
production
for anything else besides to serve the in-house back-end API. So I see the
focus of this
discussion is about how to do better design decisions for Fineract CN.

I understand the main idea of these services is to provide a solid (extra)
door for any requests
coming from the outside. The service takes care of checking every incoming
request (whether to allow or deny)
and also provide rate limiting, visual dashboards, and a good mechanism to
provide API documentation
for anyone wanting to do an implementation.

Fineract CN own roles and permission system is working on each individual
user level.
What I have seen then often the users configured to the API-gateway
services are channel-specific.
So you would have one gateway user for your self-service, another user for
your mobile app and a third user for some integrator.
And then in the API-gateway system, there would be a list of allowed or
restricted actions for each user.
I wonder if we would take the same approach.

In that sense, I think it is important for Fineract-CN project to start
providing channel-specific users
for the API gateway and maintain a set of configurations for each different
user type.

Also providing very good API documentation is a key to any integrations. So
a single portal
that pulls the API descriptions from internal system and aggregates them
together is definitely
a key aspect and it is important to design the internal API-s in a way that
the outside system
can just pull the documentation automatically (like Swagger UI system does
it)

Regarding the second topic - whether we should be guiding the project
towards one of them or not.
My opinion is that we shouldn't fix the project to a single provider since
many large organizations
have already picked a specific vendor for all the projects and they would
prefer to use that.

Instead, I would define this area - API-gateway as a component that you can
choose from any vendor
but the project could choose one or two and provide updated configuration
and instructions for those.
So let's say we would pick Kong as a preferred project - we would create an
additional Github repository
with all the needed configuration. But if I would be an
organization wanting to use Amazon API Gateway or APigee instead then
I would have the possibility to configure that instead by looking at the
maintained configuration.

In design wise - I would suggest Fineract-CN itself wouldn't know that
API-gateway even exists.
It would just provide its documentation and API in a manner that any
gateway can pick it up.

Looking forward to active discussion on the topic

Juhan





Kontakt James Dailey () kirjutas kuupäeval N, 14.
märts 2019 kell 21:53:

> Hi Devs -
>
> At a high level I believe that we need to make some decisions about the
> architecture with regard to APIs and "customer channels" in particular and
> about the choice of external tool sets.
>
> There are two things to consider:
> 1.  In recent discussions several senior devs have pointed out that the
> fineract1.x architecture,  which provides APIs to internal users has been
> (inappropriately? for demo reasons?) extended to include APIs that are
> customer facing. This occurs "without sufficient services isolation" I
> believe the phrase might be.  Part of the design of FineractCN is to avoid
> this by proposing new (properly isolated, restricted) microservices that
> consume other microservices.  API endpoints in both projects need to be
> enhanced and expanded in some way and related to other system APIs.  Third
> Party Providers (TPP) are the subject of new banking regulations in a lot
> of places - providing good API access is becoming a norm.
>
> 2.  There are now several toolsets available to manage the API layer
> (traffic, dashboards, testing, etc).  Some of these are close sourced, and
> others are partly or entirely opensource code:
>
> WSO2.com |  https://github.com/wso2
> konghq.com | https://github.com/Kong
> gravitee.io | https://github.com/gravitee-io
> and others...
>
>
> My initial take is that we need to make an initial decision about the
> importance of this and to decide if it belongs as part of the fineract
> project, or if it is to be left to outside vendors and providers.  i.e.
> does an API management solution even belong on the roadmap ? Or does it
> belong on the anti-roadmap?
>
> (Anti-roadmap is the term used to describe the pieces of architecture that
> will be left to the implementing entities to build, thus creating the
> competitive space that the open source project expects to see.  This kind
> of "blank space" strategy clarifies what is meant to be open and in the
> core and what is meant to be not in the core.)
>
> The second decision is about whether or not we try to guide the project
> toward one or both of the current top leaders 

Re: Road Map for deploying Fineract CN

2019-03-13 Thread Juhan Aasaru
Hey!

Great work, Courage!

Regarding what you wrote in your first mail:
Lastly, we could publish the built Fineract CN services libraries to a
Maven Artifactory so developers will not have to manually clone and publish
these services by themselves.

You didn't put that into the Jira ticket but I got an idea how we could
smoothly solve this step using jitpack.io
I thought it would be good to share this idea in the current discussion.

Publishing a new version of a library to Maven Central is quite a work.
With jitpack.io one can just use a git commit hash as a version number (or
branchname-SNAPSHOT to get the build of the latest commit).
Basically, you one needs to configure jitpack repository as a dependency (I
use maven style as example):


jitpack.io
https://jitpack.io


and then there is need to specify the dependency using Github url:

For example
https://github.com/apache/fineract-cn-identity
with Latest commit 6f8498d  4 days ago

turns into the following dependency:

 
com.github.aasaru
fineract-cn-identity
6f8498d


Jitpack checks out and builds the jar during the first request.
And it can be also downloaded from the public Maven repo that jitpack
serves. Url would be something like:
https://jitpack.io/com/github/apache/fineract-cn-identity/6f8498d/...

For now this doesn't work yet (I suspect the gradle command that
jitpack uses doesn't result with a build
due to the current configuration of fineract-cn-identity build.gradle. This
needs yet to be investigated.

Kind regards
Juhan

Kontakt Courage Angeh () kirjutas kuupäeval P, 10.
märts 2019 kell 23:03:

> Hi Guys,
>
> I have created this task on Jira:
> https://issues.apache.org/jira/browse/FINCN-139
>
> I think the project to should be added to the GSoC 2019 idealist.
>
> Thanks,
> Courage
>
> On Sat, Mar 9, 2019 at 2:04 PM Courage Angeh 
> wrote:
>
> > Thanks and you're welcome.
> >
> > On Sat, Mar 9, 2019, 8:01 AM Myrle Krantz  wrote:
> >
> >> Wonderful!
> >>
> >> I've merged.
> >>
> >> Thank you Courage,
> >> Myrle
> >>
> >> On Sat, Mar 9, 2019 at 1:14 AM Courage Angeh 
> >> wrote:
> >>
> >> > Hello guys,
> >> >
> >> > Hope this email finds you well. For the past weeks, I have been
> working
> >> on
> >> > moving the different Fineract CN service Dockerfiles to their
> respective
> >> > repositories. Here are the PRs, can some please view and merge them:
> >> >
> >> > https://github.com/apache/fineract-cn-rhythm/pull/7
> >> > https://github.com/apache/fineract-cn-identity/pull/8
> >> > https://github.com/apache/fineract-cn-office/pull/8
> >> > https://github.com/apache/fineract-cn-accounting/pull/9
> >> > https://github.com/apache/fineract-cn-deposit-account-management
> >> > https://github.com/apache/fineract-cn-portfolio
> >> > https://github.com/apache/fineract-cn-teller/pull/10
> >> >
> >> > What work is left for successful deployment?
> >> >
> >> > First, we need to configure Docker scripts to deploy and manage the
> >> system
> >> > on swarm mode. Then update provision and migration script to work with
> >> > cluster environments and create the chart accounts.
> >> > We also have to add Jenkins to the different Fineract CN services,
> then
> >> > each service to its image on DockerHub.
> >> > Lastly, we could publish the built Fineract CN services libraries to a
> >> > Maven Artifactory so developers will not have to manually clone and
> >> publish
> >> > these services by themselves.
> >> >
> >> > But all this needs resources like a DockerHub and Jenkins account.
> >> > I would like to propose this project for a GSoC project.
> >> >
> >> > Thanks,
> >> > Courage.
> >> >
> >>
> >
>


Re: Email Service Configurations

2019-03-13 Thread Juhan Aasaru
Hi Mexina,

somewhere in the application logs there has to be an error when the back-end
makes a request to send out an email.
If you use Apache Tomcat then look for error text from catalina.out
or fineract-platform.log in
tomcat_home/logs directory.
I suspect Google/Yahoo is blocking the activity for some configuration
reason and usually
the error text returned by the mail service is explanatory enough.

Juhan


Kontakt Mexina Daniel () kirjutas kuupäeval K, 13.
märts 2019 kell 07:08:

> Hello
>
> I would like an assistance on email service configuration by using a gmail
> address and yahoo mail address.
>
> when i  configure email service by using the email of our domain, it
> successfully send the auto-generated password.
>
> But when i use my gmail account or yahoo account, it doesn't.
>
> Gmail configurations i filled:
>
> username: gmailu...@gmail.com
>
> password: mypassword
>
> host: smtp.gmail.com
>
> port: 587
>
> useTLS: true
>
>
> Yahoo configurations i filled:
>
> username: yahoou...@ymail.com ( my address use @ymail.com and not @
> yahoo.com)
>
> password: mypassword
>
> host: smtp.mail.yahoo.com
>
> port: 587
>
> useTLS: true
>
>
> Can someone help if my missing something on these configurations?
>
> Thanks in advance.
>
> Mexina Daniel
>
> Singo Africa Limited
> Block G, Mbezi Beach B | 7 Nakawale Road | P.O BOX 78908 | 14121 Dar es
> salaam
>
> +255 71 211 0791 | +255 22 261 8511
>
> amala.co.tz | singo.africa
>
>
>


Re: Error when running *gradlew runTomCat*

2019-03-12 Thread Juhan Aasaru
Hi Mua

this should be expected behaviour.
Try to open the browser at
http://localhost:8080/fineract-provider/api/v1/clients?tenantIdentifier=default
and if you get a valid JSON (something like "[]" since you don't have any
customers yet in your database) back then you have fineract back-end
working.

Kind regards
Juhan

Kontakt Mua Rachmann () kirjutas kuupäeval T, 12.
märts 2019 kell 09:16:

> Hi Vishwas,
>
> I corrected the context.xml file thanks. This time around I ran *./gradlew
> tomcatRunWar*
>
> All builds fine but stucked at 92% of the build. Could there be something
> wrong?
> Or is this the expected behaviour. Should i have to wait again for it to
> complete?
>
> Here is the output of the command - https://pastebin.com/MvQB4Rzk
>
> Thanks
>
> On Tue, Mar 12, 2019 at 3:43 AM Vishwas Babu <
> vish...@confluxtechnologies.com> wrote:
>
> > Mua,
> >
> > During tomcatRunwar, the following tasks are carried out
> >
> > 1) Initialize and upgrade the tenants list database (which lists details
> of
> > all tenants and their database connection credentials, i.e the equivalent
> > of ./gradlew migrateTenantListDB -PdbName=mifosplatform-tenants )
> >  You are stuck here
> > 2) Upgrade each tenant-specific database.
> >
> >
> > The gradle tasks for migrating databases pick up the db credentials from
> > build.gradle (root, mysql by default). However, the tomcatrunwar task
> picks
> > up the credentials from a different location
> > (/fineract-provider/src/test/resources/META-INF/context.xml). You would
> > have to ensure the appropriate credentials are set here too, or that you
> > are using the default credentials (root,mysql).
> >
> > Regards,
> > Vishwas
> >
> > On Mon, Mar 11, 2019 at 7:19 PM Mua Rachmann 
> > wrote:
> >
> > > Hi everyone,
> > >
> > > I ran the following commands below which built successfully.
> > >
> > >
> > >1. ./gradlew migrateTenantListDB -PdbName=mifosplatform-tenants
> > >2. ./gradlew migrateTenantDB -PdbName=mifostenant-default
> > >
> > >
> > > Upon running *gradlew tomcatRunWar* I get the following error
> > > https://pastebin.com/ExQZEG6c
> > >
> > > From the following error message. I think the connection to
> mysql-server
> > is
> > > not obtained but i am confused cause i just ran the migrations and it
> > > actually populated my database which shows the fineract app actually
> > > communicates with my database.
> > >
> > > Please can anyone help me figure this out?
> > >
> > > Thanks Mua.
> > >
> >
>


Re: Fineract CN Users' Guide

2019-03-12 Thread Juhan Aasaru
Hi there!

Great work, Isaac! I learned a lot about Fineract CN while reviewing the
User's guide.
I did some changes:

   1. Top page repeated the same info already present on child pages (but
   in less detail). I took the freedom to delete this duplication and replaced
   it with short intro + direct links to steps (Reports step as a separate
   page was missing, added that)
   2. Training link to training.kuelap.io was dead (it is not temporarily
   down). I removed that.

Question:

   1. Members child page says "Members are people within your organization
   who do not have access to the platform." I think this also includes
   customers. In that case, I would add this info as well (because customers
   are not part of the organization).

Kind regards
Juhan

Kontakt Isaac Kamga () kirjutas kuupäeval N, 7.
märts 2019 kell 02:55:

> Hello fineracters,
>
> Trust that this email finds you in good health.
>
> For the past few months, the photos on the Fineract CN Users' Guide [1]
> weren't visible and I had to fix that..so it's back to life now for anyone
> to see how Fineract CN is used.
>
> +Juhan Aasaru  or any new volunteer, kindly take some
> time to review and update the users' guide  too.
>
> +James Dailey  Given you've been rearranging to
> the project Wiki lately, could you move the User Manual from the  User Zone
> pages [2] to Section Fineract CN pages [3] ?
>
> [1]
> https://cwiki.apache.org/confluence/display/FINERACT/Apache+Fineract+CN+Users+Guide
> [2]
> https://cwiki.apache.org/confluence/display/FINERACT/Fineract+User+Zone
> [3] https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN
>
> At Your Service,
> Isaac Kamga.
>


Add Dockerfiles to each fineract-cn-* repository

2019-02-22 Thread Juhan Aasaru
Hello!

During the initial Fineract devops meeting there was a proposition to
create a Dockerfile into each of the fineract-cn-* repositories (first step
towards publishing imgaes into Docker Hub)

I plan to get those files created but I would request some help from the
community about how exactly the files should look like. I know Courage has
files for most of the services here:
https://github.com/openMF/fineract-cn-containers but they require
modifications.

To reduce the scope my initial plan was to start with a bare minimum.
Recently Vishwas added (
https://github.com/apache/fineract-cn-demo-server/pull/25) for demo server
a new flag -Ddemoserver.lite , which when set to true restricts the working
set of micro-services to Provisioner, Identity, Rhythm, Organization and
Customer. So my plan is to first create Dockerfile-s for the same services
and create a pull request for each of them.

To get started I created initial files for the first two:
https://github.com/aasaru/fineract-cn-provisioner/blob/dockerfile/Dockerfile
https://github.com/aasaru/fineract-cn-identity/blob/dockerfile/Dockerfile

And in order to make it dead simple to follow, I propose launching required
supporting services also via running docker images from Docker Hub. This is
what I have this far:

docker run --name=cassandra-for-min-fineract-cn -p9042:9042 cassandra:3.11
docker run --name=mysql-for-min-fineract-cn -p3306:3306 -e
MYSQL_ROOT_HOST=% -e MYSQL_ROOT_PASSWORD=mysql -d mysql/mysql-server:5.7
docker run -p8761:8761 --name=eureka-for-min-fineract-cn
springcloud/eureka:latest

And the building and running of the services (in their respective
directories) looks like this:

docker build -t fineract-cn-provisioner .
docker run -p2020:2020 fineract-cn-provisioner:latest

docker build -t fineract-cn-identity .
docker run -p2021:2021 fineract-cn-identity:latest

Currently, I have run into a problem that Eureka doesn't see Identity
service. Also I had to include private keys in Dockerfile. So I would
welcome any feedback from the community about the format of Dockerfiles
especially from those who have already created the Dockerfiles by
themselves.

Kind regards
Juhan Aasaru


Re: Upgrade Gradle version used in Fineract

2019-02-22 Thread Juhan Aasaru
Hi!

Vishwas and Myrle, thanks for explanations regarding Gradle version and
wrapper download instructions.
I first didn't notice that Michael had changed Gradle version inside
gradle-wrapper.properties
Instructions regarding downloading wrapper could include a line:
"You only need to download wrapper if
file fineract-provider/gradle/wrapper/gradle-wrapper.jar doesn't already
exist"

I had problems with Gradle when I first imported the project.
I think some of the confusion was caused by the fact that root directory
contains gradlew and gradlew.bat but the wrapper is
inside fineract-provider/gradle/wrapper

When I imported the project into IntelliJ IDEA it auto-generated following
files:
/gradle/wrapper/gradle-wrapper.jar
/gradle/wrapper/gradle-wrapper.properties
/fineract-provider/gradlew
/fineract-provider/gradlew.bat

This is caused by the fact that the actual root directory of Gradle project
is fineract-provider
My proposition would be to include separate gradlew and gradlew.bat in
fineract-provider directory
(to avoid them being auto generated or considered missing). Or completely
move them from root to fineract-provider.

Kind regards
Juhan


Kontakt Myrle Krantz () kirjutas kuupäeval E, 18.
veebruar 2019 kell 22:59:

> On Mon, Feb 18, 2019 at 8:39 PM Vishwas Babu <
> vish...@confluxtechnologies.com> wrote:
>
> > @Juhan : While I am not sure why the readme has instructions for
> > downloading gradle wrapper separately (given that it is a part of the
> > project repo and committed into the code),
> >
>
> ASF policy is that releases should not include binaries.  That includes the
> gradle.jar.  So before a release is cut the gradle jar is deleted.  Many
> developers work from forks.  We include the gradlel jar for them.  But we
> don't want two versions of the readme.  That makes it necessary to download
> the gradle wrapper or install gradle locally, and necessary to include that
> in the instructions.
>
> Best Regards,
> Myrle
>


Re: Upgrade Gradle version used in Fineract

2019-02-18 Thread Juhan Aasaru
Hello Mike!

That is a great initiative. I checked the pull request and I noticed
something that you might want to take into account.

Currently, Readme.md has instructions on how to download Gradle Wrapper.
In my understanding, the correct Gradle Wrapper should be already committed
to the code and the
developers shouldn't need to download the Wrapper. This is the whole idea
behind using Gradle Wrapper
so that everybody uses the same Gradle version.

I see that the old wrapper is still there under
/fineract-provider/gradle/wrapper
and your pull request doesn't touch that.

I think the issue could be solved by:
1. run gradle wrapper
2. include the changed files (/fineract-provider/gradle/wrapper) in your
pull request
3. update Readme.md and remove the instructions about needing to download
Gradle Wrapper.

I didn't try it out myself so it might need some changes but I hope you get
the idea.

Kind regards,
Juhan




Kontakt Michael Vorburger () kirjutas kuupäeval E, 18.
veebruar 2019 kell 01:51:

> Hello,
>
> I would like to propose https://github.com/apache/fineract/pull/525 to
> upgrade the Gradle version used in Fineract.
>
> It would be good to get some reviews and perhaps manual testing from some
> people. I does of course build again (see the "green" PR, now that we have
> Travis CI integration), but I have not done any testing of it... would
> someone like pull it, build it, fire it up and give it a try to make sure I
> didn't break anything?
>
> Please see https://issues.apache.org/jira/browse/FINERACT-700 for the full
> details of the work that was required and done.
>
> I'll self merge this in 2 weeks if I don't hear any objections from anyone.
>
> Regards,
> Michael
>
> PS: I'm not actually reading this list (and won't, just due to general
> load), but am replying to this via web interface; please Reply-To-All if
> you want me to see replies.
> ___
> Michael Vorburger
> http://www.vorburger.ch
>


Re: Fineract CN Demo server setup

2019-01-19 Thread Juhan Aasaru
Hi Aleks

Thanks for your work on pushing the demo server to live.
I have played around with the containers also and I add my feedback and
ideas.

> - it would come in handy to have default Fineract CN Docker images
published on Docker Hub

I think this is a way to go. If we want to promote adoption of Fineract-CN
then public images
lower the burden to anyone to download and get going with the project.
Does the CI server already exist that could potentially build the images?

 >  - I suggest to add a Dockerfile in every microservice Git repository (e.
 >g. fineract-cn-customer, fineract-cn-teller, fineract-cn-payroll) and
let a
 >   CI server build and publish Docker images of these

Yes. Most of the Dockerfiles already exist here
https://github.com/openMF/fineract-cn-containers
But they logically belong to the application's own code base so I see no
harm in adding all
Dockerfiles to the app's own repository.

  - I am assuming that we **don't** want to go all the way to setup a
Kubernetes (or even a Docker Swarm) cluster; the goal is to just have a set

If we plan to operate with docker-compose already (and run in two servers)
then I, in my opinion, it wouldn't be much overhead to create a Swarm
cluster.
If I look at the instructions (https://docs.docker.com/get-started/part4/)
it doesn't seem like a lot of work.
Also if something happens then Swarm can detect and relaunch containers.
But I'm no system administrator myself so I might be mistaken in terms of
how much work it requires.

> - to avoid code changes or Docker image rebuilds we should introduce
>   environment variables in the application.yml files of these microservice
>   projects; e. g.:
> cassandra:
>   clusterName: staging_cluster
 /---/
> ... should look something like this:
> cassandra:
>   clusterName: ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
/---/

I think there is no need to change application.yml files.
In docker-compose.yml you can overwrite any application.yml property in
"environment" section like this:

   environment:
  -
"cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"

Juhan



Kontakt Aleksandar Vidakovic () kirjutas
kuupäeval N, 17. jaanuar 2019 kell 03:46:

> Hi everyone,
>
> ... hope you all enjoyed the holidays and had a good start into the new
> year :-)
>
> I have to appologize for my radio silence concerning the demo server, but I
> got a bit steam rolled by work in the last 6 months.
>
> Anyway, I just wanted to get this effort going again and would like to
> discuss it with anyone interested.
>
> The current status:
>
>- we have 2 (quite big) servers provided by the Apache Foundation to run
>the demo setup
>- initially I tried to get it running on one, but was not enough (even
>with 32GB of RAM and some swap configuration tricks)
>- I've used the demo server module with some minor modifications to turn
>off non-essential components (thanks Myrle)
>
> Trying all of this took quite some time... even on the beefy machine from
> Apache it took (as far as I remember) 30-40min until the demo server
> startup would ultimately fail.
>
> Instead of going down that route again I'd like to propose a different
> strategy:
>
>- I am assuming that we **don't** want to go all the way to setup a
>Kubernetes (or even a Docker Swarm) cluster; the goal is to just have a
> set
>of docker-compose.yml files to start the system
>- it would come in handy to have default Fineract CN Docker images
>published on Docker Hub
>- I suggest to add a Dockerfile in every microservice Git repository (e.
>g. fineract-cn-customer, fineract-cn-teller, fineract-cn-payroll) and
> let a
>CI server build and publish Docker images of these
>- to avoid code changes or Docker image rebuilds we should introduce
>environment variables in the application.yml files of these microservice
>projects; e. g.:
>
> [code]
> ...
> cassandra:
>   clusterName: staging_cluster
>   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
>   keyspace: seshat
>   cl:
> read: LOCAL_QUORUM
> write: LOCAL_QUORUM
> delete: LOCAL_QUORUM
> ...
> [/code]
>
> ... should look something like this:
>
> [code]
> ...
> cassandra:
>   clusterName: ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
>   contactPoints: ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
>   keyspace: ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
>   cl:
> read: LOCAL_QUORUM
> write: LOCAL_QUORUM
> delete: LOCAL_QUORUM
> ...
> [/config]
>
>- with the above changes we could then define docker-compose.yml files
>like this (pseudo file for customer microservice):
>
> [code]
> version: '3.6'
>
> services:
>   customer:
> image: nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> depends_on:
>   - mongo
> env_file:
>   - ./customer.env
> ports:
>   - "1:1"

Re: Setup on Containers

2019-01-07 Thread Juhan Aasaru
Hi,

I found the code Courage was referring to from here:
https://github.com/Anh3h/fineract-cn-provisioner/commit/2ff842b551a6459e14c8aa1d0aa2a6e85bc622bc
based on this code I just added the needed log statements
to ProvisionerServiceConfig (it already had log statement for timestamp).
Then I built the new provisioner jar, ran demo-server, copied the
public/private key info from logs, added it to start-up.sh like this:

docker run --name provisioner-ms --env
eureka.instance.hostname=172.16.238.2 --env ribbon.listOfServers=
172.16.238.2:9090 \
  --env eureka.client.serviceUrl.defaultZone=http://172.16.238.2:8761/eureka
--env activemq.brokerUrl=tcp://172.16.238.3:61616 \
  --env cassandra.contactPoints=172.16.238.5:9042 --env
mariadb.host=172.16.238.4 --network externaltools_app_net \
  --env system.publicKey.timestamp=2019-01-07T08_10_29 \
  --env system.publicKey.exponent=65537 \
  --env system.publicKey.modulus=17...91 \
  --env system.privateKey.modulus=17..91 \
  --env system.privateKey.exponent=14..73 \
  --ip 172.16.238.6 provisioner:latest

the good thing is that it all worked but it would be however helpful to
understand what is exactly happening behind the scenes.
Also, I haven't yet figured out if these keys were hardcoded into the demo
app (wouldn't be secure to use) or were they generated.

Juhan


Kontakt Courage Angeh () kirjutas kuupäeval L, 5.
jaanuar 2019 kell 17:43:

> Hi Juhan,
>
> I updated provisioner microservice to expose the security keys to its log
> file. And the startup script shares those details amongst the other running
> microservices. I havent tested the script in MacOS but it should not be too
> different.
>
> Thanks,
> Courage.
>
> On Sat, Jan 5, 2019, 9:55 AM Juhan Aasaru 
> > Hi again!
> >
> > Now I got to the same point where Patrick got in his initial email but I
> > didn't find an actual answer from this thread.
> > When running provisioner the system says the following properties may not
> > be null:
> > system.privateKey.exponent
> > system.publicKey.exponent
> > system.publicKey.modulus
> > system.publicKey.timestamp
> > system.privateKey.modulus
> >
> > I found out from Patrick's email that I probably need to generate a RSA
> key
> > pair and extract these values from there and pass them to provisioner
> like
> > other properties. Patrick, if I may ask, what kind of external tool did
> you
> > use for this?
> >
> > Eventually I think readme of provisioner should be updated with the info
> > about the need of suplying these parameters
> > so I started the process of getting this info together using command
> line.
> >
> > I did some research and managed to
> > 1) generate rsa key pair (I chose the length to be 4096)
> > 2) convert public key to pem format
> > 3) and print out decimal exponent value and modulus value (as hex string)
> > 4) convert modulus hex value into decimal value
> >
> > I also learned that modulus of private and public key should be the same.
> > What I didn't manage to do:
> >
> > 5) find out where to take the timestamps from
> > 6) get the exponent of the private key (didn't find any working
> > instructions)
> >
> > Here are the statements that I ran for steps that worked:
> >
> > 1) ssh-keygen -t rsa -b 4096 (answered "key" to filename prompt, left
> > password blank)
> > 2) ssh-keygen -f key.pub -e -m pkcs8 > pem.pub
> > 3) openssl rsa -pubin -text -noout -in pem.pub
> > 4) I took the Modulus, removed all colons, spaces and newlines, got
> > something like 00c9...d0d7
> > then turned it into uppercase: 00C9...D0D7
> > and then converted it into decimal:
> > echo 'ibase=16; 00C9...D0D7' | BC > modulus.txt
> >
> > Thanks
> > Juhan
> >
> >
> > Kontakt Juhan Aasaru () kirjutas kuupäeval L, 5.
> jaanuar
> > 2019 kell 09:39:
> >
> > > Hi Courage,
> > >
> > > I found that the problem with the network name is backwards
> > > incompatibility with docker-compose for directories
> > > having a dash ("-") inside the directory name.
> > >
> > > New docker-compose versions keep the dash while old ones remove it when
> > > creating a network name.
> > > One fix would be to remove the dash from the folder name and replace it
> > > with underscore.
> > > So external-tools would be renamed to external_tools.
> > >
> > > More info about the incompatibility:
> > > https://github.com/hyperledger/caliper/issues/198
> > >
> > > Your workaround of creating the network manually seems to work on my
> > > machine.
> > >
&

Re: Setup on Containers

2019-01-04 Thread Juhan Aasaru
Hi Patrick,

thanks for the step-by-step instructions. Here are the results:

When I ran "docker-compose up" inside "external-tools" and then "docker
network ls" in another terminal I got:

5271e3e6a6ebexternal-tools_app_net   bridge
  local
29fa4ca2bf83external-tools_default   bridge
  local

So the dash ("-") inside the folder name propagates into the network name
as well (at least in my mac).
To comply with this I changed "externaltools_app_net" to
"external-tools_app_net" in start-up.sh and
last row of docker-compose.yml in main directory (other option would have
been renaming directory "external-tools" to "externaltools").

When I ran "docker-compose up" in the main directory I first got an error
with a missing jar in ledger-ms, but I discovered that migration-script was
missing "accounting", I fixed that and created a pull request together with
adding dash to network name.
Courage, would you mind taking a look at the pull request:
https://github.com/openMF/fineract-cn-containers/pull/7/commits/465dfd21aa516cf2c7a363b7bc30d4346c2316c2

After that the "docker-compose up" in the main directory ran until the
output was:

Attaching to identity-ms, deposit-ms, portfolio-ms, report-ms, ledger-ms,
customer-ms, office-ms, rhythm-ms, teller-ms

And then it halted.

When I run "docker-compose down" and then "docker-compose --verbose up"
then I got a bit more info:

Attaching to identity-ms, deposit-ms, portfolio-ms, report-ms, ledger-ms,
customer-ms, office-ms, rhythm-ms, teller-ms
compose.cli.verbose_proxy.proxy_callable: docker events <-
(filters={'label': ['com.docker.compose.project=fineract-cn-containers',
'com.docker.compose.oneoff=False']}, decode=True)
urllib3.connectionpool._make_request: http://localhost:None "GET
/v1.25/events?filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dfineract-cn-containers%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D
HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker events ->


I don't quite understand what it means.

It seems like it completely freezes Docker as in another terminal even
running "docker ps" doesn't repsond anything.
Just in case I will now reinstall Docker in my local computer and try again.

Juhan















Kontakt Patrick Finken () kirjutas kuupäeval R,
4. jaanuar 2019 kell 18:06:

> Hey Juan,
>
> You should first run the external service before running the main services.
>
> Basically, run the command "docker-compose up" inside the external_tools
> folder, or specify the docker-compose file: "docker-compose up -f
> ./external-toools/docker-compose.yml".
> It will spin up cassandra, activemq and maria db. And it will also create
> the network *"externaltools_app_net". *You can make sure it is the correct
> name by running the command "docker network ls". If it's not, for example,
> if the folder has a different name,  you should update the main
> docker-compose.yml file with the correct network name.
>
> Then inside the main folder, in a different terminal, run the command
> "docker-compose up" to start the main services.
>
> In the start-up script, since the IPs are not hardcoded anymore, you should
> also replace the IP with the service name. Also, make sure the network name
> is correct. It should be the same as the previous step.
>
> Let me know if it works.
>
> Patrick
>
> On Thu, Jan 3, 2019 at 6:03 PM Juhan Aasaru  wrote:
>
> > Hi!
> >
> > Courage and Patrick, thanks for explaining to me about the IP addresses
> > pointing me at the correct repo. Courage, thanks for the recent work on
> the
> > repo and for replacing the static IP-s with the service names inside
> > docker-compose files, I think this increases the readability a lot.
> >
> > I tried to run it locally (I didn't yet replace static IP-s with the
> > service names) and these are my observations.
> >
> > When previously I had a problem with static IP-s being not found when
> > running in Mac then
> > now I only had to change one thing :
> > in start-up.sh script I changed this line:
> >
> > while ! nc -z 172.16.238.5 9042; do
> >
> > to refer to localhost like this:
> >
> > while ! nc -z 127.0.0.1 9042; do
> >
> > Because in Mac host system doesn't know anything about Docker IP-s.
> >
> > But I got stuck with this line of start-up.sh script:
> >
> > docker run -d --name provisioner-ms --env
> > eureka.instance.hostname=172.16.238.2 --env ribbon.listOfServers=
> > 172.16.238.2:9090 \
> >   --env eureka.client.serviceUrl.defaultZone=
> > htt

Re: Setup on Containers

2019-01-03 Thread Juhan Aasaru
that is created when you run "docker-compose up" in
> > the
> > > external_tools folder.
> > > This is why you are able to use the hostname (ex: cassandra:9090). All
> > > containers are within the same network.
> > >
> > > Actually, all the "networks" section with the hardcoded IP address
> should
> > > be removed from all services. The network section at the end of the
> file
> > is
> > > enough.
> > >
> > > Patrick
> > >
> > > On Tue, Jan 1, 2019 at 3:26 PM Juhan Aasaru  wrote:
> > >
> > > > Hi Patrick and Courage!
> > > >
> > > > Patrick, thanks for sharing the tip how to get the docker-compose
> > version
> > > > of services working without configuring static IP addresses.
> > > > After adding Fineract microservices to "app_net" network I was
> > > > successful using this approach (with one micro service for now - I
> plan
> > > to
> > > > test with more later).
> > > >
> > > > Courage, thanks for explaining the logic. I still think that having
> > > > hardcoded IP addresses is not a good idea because (as I understand
> > > Docker)
> > > > then if you run containers then several copies of the same
> microservice
> > > > might be started to handle the load and make the service fail proof.
> I
> > > > don't think this can work well with hardcoded IP addresses as you can
> > > only
> > > > assign one IP to one specific instance.
> > > >
> > > > I proposed a fix (I added to the pull request mentioned before), also
> > > > visible here:
> > > >
> > > >
> > >
> >
> https://github.com/Anh3h/fineract-cn-docker-scripts/pull/1/commits/c4c4c8ee3e4ccfa1eda9c38fecb018952d488df1
> > > >
> > > > One of the reasons why you might have used static IP addresses is to
> > > refer
> > > > to external tools (cassandra, activemq, etc)
> > > > from the Fineract microservices. They don't know about each other
> since
> > > > they are declared in two different docker-compose files.
> > > > To overcome this I added all the Fineract microservices to "app_net"
> > > > network as I wrote above. This way I managed to start rythm-ms
> > > > and it started up with no errors.
> > > >
> > > > Patrick suggested replacing IP addresses with service names but in
> > order
> > > to
> > > > follow a similar approach to networking and static IP addresses
> > > > I used network aliases instead ("cassandra.service", "rythm.service",
> > > etc).
> > > >
> > > > The downside is that start-up.sh script cannot now use IP to refer to
> > > > Cassandra service. I don't yet know how to solve that
> > > > so you could also just ignore my pull request, Courage. It is more to
> > > > demonstrate how static IP-s could be removed from docker-compose.
> > > >
> > > > Kind regards
> > > > Juhan Aasaru
> > > >
> > > >
> > > >
> > > >
> > > > Kontakt Courage Angeh () kirjutas kuupäeval
> E,
> > > 31.
> > > > detsember 2018 kell 01:25:
> > > >
> > > > > Hi Patrick,
> > > > >
> > > > > Yea, since they are on the same network you can use the hostname
> > > instead.
> > > > > But the docker-compose file is different so you would want to check
> > > that
> > > > > out.
> > > > >
> > > > > Thanks,
> > > > > Courage.
> > > > >
> > > > > On Sun, Dec 30, 2018 at 1:16 PM Patrick Finken <
> > > patr...@finksolutions.ca
> > > > >
> > > > > wrote:
> > > > >
> > > > > > Hey Juhan,
> > > > > >
> > > > > > I manage to deploy on docker using the script here:
> > > > > > https://github.com/openMF/fineract-cn-containers. It seems to be
> > the
> > > > > same.
> > > > > > Since the containers are part of the same network, actually you
> > don't
> > > > > have
> > > > > > to use the IP addresses. You can directly use the container
> > hostname.
> > > > > > for example instead of this:
> > > > > >
> > > > > > id

Re: Setup on Containers

2019-01-01 Thread Juhan Aasaru
Hi Patrick and Courage!

Patrick, thanks for sharing the tip how to get the docker-compose version
of services working without configuring static IP addresses.
After adding Fineract microservices to "app_net" network I was
successful using this approach (with one micro service for now - I plan to
test with more later).

Courage, thanks for explaining the logic. I still think that having
hardcoded IP addresses is not a good idea because (as I understand Docker)
then if you run containers then several copies of the same microservice
might be started to handle the load and make the service fail proof. I
don't think this can work well with hardcoded IP addresses as you can only
assign one IP to one specific instance.

I proposed a fix (I added to the pull request mentioned before), also
visible here:
https://github.com/Anh3h/fineract-cn-docker-scripts/pull/1/commits/c4c4c8ee3e4ccfa1eda9c38fecb018952d488df1

One of the reasons why you might have used static IP addresses is to refer
to external tools (cassandra, activemq, etc)
from the Fineract microservices. They don't know about each other since
they are declared in two different docker-compose files.
To overcome this I added all the Fineract microservices to "app_net"
network as I wrote above. This way I managed to start rythm-ms
and it started up with no errors.

Patrick suggested replacing IP addresses with service names but in order to
follow a similar approach to networking and static IP addresses
I used network aliases instead ("cassandra.service", "rythm.service", etc).

The downside is that start-up.sh script cannot now use IP to refer to
Cassandra service. I don't yet know how to solve that
so you could also just ignore my pull request, Courage. It is more to
demonstrate how static IP-s could be removed from docker-compose.

Kind regards
Juhan Aasaru




Kontakt Courage Angeh () kirjutas kuupäeval E, 31.
detsember 2018 kell 01:25:

> Hi Patrick,
>
> Yea, since they are on the same network you can use the hostname instead.
> But the docker-compose file is different so you would want to check that
> out.
>
> Thanks,
> Courage.
>
> On Sun, Dec 30, 2018 at 1:16 PM Patrick Finken 
> wrote:
>
> > Hey Juhan,
> >
> > I manage to deploy on docker using the script here:
> > https://github.com/openMF/fineract-cn-containers. It seems to be the
> same.
> > Since the containers are part of the same network, actually you don't
> have
> > to use the IP addresses. You can directly use the container hostname.
> > for example instead of this:
> >
> > identity-ms:
> > build:
> > context: ./identity-ms-scripts
> > dockerfile: Dockerfile
> > container_name: identity-ms
> > environment:
> > eureka.instance.hostname: 172.16.238.2
> > ribbon.listOfServers: 172.16.238.2:9090
> > eureka.client.serviceUrl.defaultZone: http://172.16.238.2:8761/eureka
> > activemq.brokerUrl: tcp://172.16.238.3:61616
> > cassandra.contactPoints: 172.16.238.5:9042
> > mariadb.host: 172.16.238.4
> > system.publicKey.timestamp: 2018-10-10T01_01_15
> > system.publicKey.modulus:
> >
> >
> 1883041786550475466359665792116998138861360861811418125773023262600704610420506961056363406020789918942408991582198166392986508224137096115149674870487774825939045982918659434183601760851901070083290045061183781395325356196386657242031040052351165736982976641680336316849188641479977582074875649920309364739063695984175215564568556116274218897796169400570444034761551339328498932206771964154905729331995766717016919830551072377438556698145065425621548591770335875306907551370265528935629966530892656985959818205610297140283766405889374249542201561470010250064433930099114538970547846267201625038851781585379046349
> > system.publicKey.exponent: 65537
> > networks:
> > default:
> > ipv4_address: 172.16.238.7
> >
> > you can use this :
> >
> > identity-ms:
> > build:
> > context: ./identity-ms-scripts
> > dockerfile: Dockerfile
> > container_name: identity-ms
> > environment:
> > eureka.instance.hostname: eureka
> > ribbon.listOfServers: eureka:9090
> > eureka.client.serviceUrl.defaultZone: http://eureka:8761/eureka
> > activemq.brokerUrl: tcp://activemq:61616
> > cassandra.contactPoints: cassandra:9042
> > mariadb.host: mariadb
> > system.publicKey.timestamp: 2018-10-10T01_01_15
> > system.publicKey.modulus:
> >
> >
> 1883041786550475466359665792116998138861360861811418125773023262600704610420506961056363406020789918942408991582198166392986508224137096115149674870487774825939045982918659434183601760851901070083290045061183781395325356196386657242031040052351165736982976641680336316849188641479977582074875649920309364739063695984175215564568556116274218897796

Re: Setup on Containers

2018-12-30 Thread Juhan Aasaru
Hi Courage,

I also checked out the work you have done on containers as I also plan to
deploy the Fineract CN services to the cloud. Would you mind explaining a
few things for me:

1. I tried running the scripts (taken from your GitHub fork) locally (I
always find I need to be able to run anything locally first before
deploying to anywhere else).
I tried out both the Kubernetes scripts (with Minikube) and the
docker-compose scripts. I didn't manage to get them running because of the
hardcoded IP addresses (there is no easy method in mac to have several
static IP addresses at the same time). I don't have much experience with
deploying container-based
systems so if you could elaborate on the topic a bit and if it would make
sense to
to replace IP addresses with service names or aliases.

2. The docker-compose.yml in root directory has all of the services besides
rythm-ms commented out. Can one just comment other services back in or is
there some work that needs to be done first?

3. I think I found a typo in external-scripts/docker-compose.yml
You have mapped Cassandra port 9042 to port 9142 for the outside world but
I think it should be still 9042. I created a pull request for you repo to
fix this.

I hope you have a chance to help me with my questions.

Thanks
Juhan Aasaru









Kontakt Courage Angeh () kirjutas kuupäeval K, 26.
detsember 2018 kell 17:29:

> Hi Patrick,
>
> Could you check this out instead?
> https://github.com/Anh3h/fineract-cn-docker-scripts
> I am still to merge that into the Mifos codebase
> That should work.
>
> Thanks,
> Courage.
>
> On Tue, Dec 25, 2018 at 6:04 PM Patrick Finken 
> wrote:
>
> > Hello Courage,
> >
> > Actually, the script is from
> > https://github.com/openMF/fineract-cn-containers. The problem is that
> the
> > provisioner is expecting two properties that are not specified in the
> > Dockerfile.
> >
> > provisioner| ***
> > provisioner| APPLICATION FAILED TO START
> > provisioner| ***
> >
> > provisioner| Description:
> > provisioner|
> > provisioner| Binding to target
> > org.apache.fineract.cn.provisioner.config.SystemProperties@72443081
> > failed:
> > provisioner|
> > provisioner| Property: system.privateKey.modulus
> > provisioner| Value: null
> > provisioner| Reason: may not be null
> > provisioner|
> > provisioner| Property: system.privateKey.exponent
> > provisioner| Value: null
> > provisioner| Reason: may not be null
> >
> > But I kind of figured out the solution. I used a tool online to generate
> a
> > RSA key.
> > I'm all set now. The platform is running. Thanks
> >
> > Merry Christmas
> > Patrick
> >
> > On Tue, Dec 25, 2018 at 6:43 AM Courage Angeh 
> > wrote:
> >
> > > Hi Patrick,
> > >
> > > You wouldn't want to deactivate it 'cause its needed for
> authentication.
> > > I containerized Fineract CN as a summer of code project, that should
> help
> > > you out.
> > > https://github.com/openMF/fineract-cn-containers
> > >
> > > Merry Christmas,
> > > Courage.
> > >
> > > On Tue, Dec 25, 2018 at 1:22 AM Patrick Finken <
> patr...@finksolutions.ca
> > >
> > > wrote:
> > >
> > > > Hello Everyone,
> > > >
> > > > I'm Patrick. I've recently discovered Fineract CN and I might be
> > > interested
> > > > to use as a backend system for a financial application I'm building.
> > > > I succeed to build and launch the demo-server on my local machine,
> but
> > > I'm
> > > > stuck when I try to run it inside containers.
> > > > I used the script from the repo "apache/fineract-cn-provisioner", but
> > the
> > > > provisioner service failed to run because of the missing
> configuration
> > > > "system.privateKey.modulus" and "system.privateKey.exponent". I'm
> > > > guessing it's related to some RSA configuration, but there is a way
> to
> > > > deactivate it in order to run and test the API?
> > > >
> > > >
> > > > regards
> > > > --
> > > > Patrick,
> > > >
> > >
> >
> >
> > --
> > Patrick Finken,
> > Owner
> >
>


  1   2   >