FINERACT-1190: fineract-api
I've added a fineract-api jar temporarily to the folder "libs" in the root directory. This will be removed as soon as we can publish artifacts to Maven Central. This report service implementation makes no assumptions where it is embedded or how it is delivered to the users; in short: got rid of all JAX-RS references.
All parameter that need to refer to internal implementation details of Fineract (aka everything outside of fineract-api) should be set before the process function is called (work in progress on apache/fineract#1416).
The way how the reports are delivered now (via provided output stream parameter) makes the delivery a little bit more efficient. We don't need to create a ByteArrayOutputStream, no more byte arrays in the JAX-RS response objects. All reports are now streamed without loading all content into memory.
As is no cloned Fineract Git repository needed to make this service module compile.
This implementation is not tested yet.
@vidakovic you are too fast! :smiling_imp: I've got a few other Open Issues, and https://issues.apache.org/jira/browse/FINERACT-1177 to take care of first, and will then look at this later; hope that's fair and OK with you? I'd like not to "break" this plugin, which works as-is for me now, and have people test it (v1.0?) - and then move to our future new model (v2.0?).
@vorburger All good. Just couldn't sleep tonight and had a run; won't happen every day ;-) ... just take your time. I'll see your comments if you need something to change and will pick up as soon as I can then.
@vidakovic Please see #25 for an announcement re. future maintenance of this repo.
Given that https://github.com/apache/fineract/pull/1416 was (auto) closed, would you like to Close this PR?
@vidakovic is there any Maven Central repository for the Fineract or Mifos libraries?
We are publishing the API client library to a Mifos Artifactory repo... from the downstream Mifos fork. If you would like to publish the report lib let me know. btw: maybe it would be a good idea to transform this report module into a custom module and add the code to the downstream Mifos fork... easier to build, maintain and publish... my 2 cents.
@vidakovic @vorburger https://pf4j.org/ has been considered as a possible solution for making Apache Fineract a Plugin container and then... work with plugins.
Didn't have that on the radar, will check out. But do we need this layer? There is Java modules, Spring components, services, Java service lookup...
@vidakovic @vorburger https://pf4j.org/ has been considered as a possible solution for making Apache Fineract a Plugin container and then... work with plugins.
I don't think Fineract actually needs anything like that. But if you must, consider (my) https://github.com/vorburger/HoTea 🤣 which I had some fun with, a long time ago. But again, I do not think (anything like) that is required; Spring is enough (but static instead of a dynamic reloading, so needs restart, which is fine, IMHO).
@vidakovic @vorburger is there any plan to have the fineract client in any repository? This is because I see in the gradle file a reference to the fineract directory/files.
The client is already published in Mifos' Artifactory repo.
@vidakovic it is public? I am looking at https://mvnrepository.com/artifact/com.mifos & https://mifos.jfrog.io/ui/login/...
I thought it is... but maybe not. Note: I had already half of the configuration to publish our jars via Apache... I successfully pushed to their staging environment... I think that would be the better place, because from there they get automatically published to Maven Central... have to pick it up again.
https://issues.apache.org/jira/browse/FINERACT-1102
Closing, now using the Fineract library dependency in the pom file.