vidakovic opened a new pull request #1402:
URL: https://github.com/apache/fineract/pull/1402


   ## Description
   
   Some pointers for your reviews:
   
   1. fineract-client uses the official OpenAPI Gradle plugin to generate 
sources; I've removed the plugin that was previously used from 
fineract-provider; the CLI based code generation is also removed (including 
spawning a separate Gradle build); just to say fineract-client is a true module 
now
   2. the "allprojects" section contains now more plugin configurations that 
can be applied to all modules; I've moved Spring dependency management, Rat and 
License check there, because like this we only have to configure them once
   3. there is a new section (after "allprojects") that contain every plugin 
configuration common to Java modules. Source sets, compiler arguments, JDK 
compatibility as well as Spotless Java related configurations are done in one 
place here. We can move more stuff here, e. g. Errorprone, Jacoco, Git 
properties, Checkstyle, Modernizer, Spotbugs, project report; these plugins are 
not fineract-provider specific, but can be applied to any Java module 
(fineract-client included); I just wanted to limit this first set of changes 
(already 25+ files changed)
   4. please look at line 26 of the build.gradle file in the root folder to see 
how the selection of Java projects works; this allows us to use one common 
configuration for Java projects (see line 333)
   5. fineract-client/src/main/templates contains OpenAPI/Swagger code 
generator template files that fix a couple of style errors or just add 
licenses; just to have the bare minimum there; these sources are still excluded 
from Spotless and other checks, because... well, generated code.
   6. in the current upstream develop branch the Swagger generated code is 
built on Travis with "mvn test"; I would be surprised if we have any tests 
there... I remember there's a flag to generate test stubs, but how useful are 
these skeleton tests then? Have to check this again
   7. I still have to decide how to handle the Swagger file ("fineract.yaml"). 
In my first prototype I've copied it from fineract-provider to fineract-client, 
because I couldn't convince Gradle to build the modules in a certain order 
(fineract-provider -> fineract-client); it's not really a good practice to do 
this anyway in Gradle, but still there are a few mechanics that should help 
(like declaring a project dependency or something along those lines). If I 
manage to get this working then we don't need to Git manage fineract.yaml under 
fineract-client (we can just pick it up in fineract-provider/build). Just FYI
   
   ## Checklist
   
   Please make sure these boxes are checked before submitting your pull request 
- thanks!
   
   - [x] Write the commit message as per 
https://github.com/apache/fineract/#pull-requests
   
   - [x] Acknowledge that we will not review PRs that are not passing the build 
_("green")_ - it is your responsibility to get a proposed PR to pass the build, 
not primarily the project's maintainers.
   
   - [x] Create/update unit or integration tests for verifying the changes made.
   
   - [x] Follow coding conventions at 
https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.
   
   - [x] Add required Swagger annotation and update API documentation at 
fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details 
of any API changes
   
   - [x] Submission is not a "code dump".  (Large changes can be made "in 
repository" via a branch.  Ask on the developer mailing list for guidance, if 
required.)
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to