based upon code review of changes made by @awasum in previous commit:
- fix clear contains() GC_UNRELATED_TYPES bug in Loan
- fix clear equals() EC_UNRELATED_TYPES bug in Loan
- fix more equals() & hashCode() in...
* Charge
* TrialBalance
* LoanProductBorrowerCycleVariations
* LoanProductProvisioningEntry
- fix AccountingConstants to avoid using @FindBugsSuppressWarnings
- fix SelfLoansDataValidator instead of @FindBugsSuppressWarnings
- minor clean up in build.gradle (spotbugs has replaced findbugs)
PS: This change originally included also fixing the missing hashCode()
and equals() in ShareAccountCharge, but that turned out to be non
trivial, see FINERACT-827, and is thus not yet fixed by this.
This fixed bugs introduced in edc9e030e1
(in https://github.com/apache/fineract/pull/648) which for FINERACT-773
actually broke things more instead of adding the intended feature, cauz:
1. FINERACT_DEFAULT_TENANTDB_HOSTNAME and FINERACT_DEFAULT_TENANTDB_PORT
were meant to be OS Environment Variables, not Java System properties
and so need to be read via System.getenv() not System.getProperty(),
duh!
2. The Travis CI test which was meant to ensure non-regression for this
broke in that same change, because the "|| docker logs" introduced at
the same time would always pass (EITHER because "http" passed OR
if not then "docker logs" would return 0), duh again!
Both were dumb, not sure what I was thinking when I had hacked this.. ;)
SpotBugs didn't like the original version, and the initial changes made
for SpotBugs satisfied SpotBugs, but the class was still pretty weird.
This change makes it follow the regular standard builder pattern.
@awasum changed this in the SpotBugs related work, but this seems both
wrong, and, for me, makes this test now fail instead of pass (even
though for him it passed on the original PR...).
Probably related to https://issues.apache.org/jira/browse/FINERACT-820;
note that my current local time as I'm testing this is Sunday, and it
WORKS with; I'm now confused when FINERACT-820 affects us and when not.
Or perhaps this has nothing at all to do with that.
Remove necessary resetting of 2 select default global configurations in FlexibleSavingsInterestPostingIntegrationTest.
Fixes issue where global configurations were affecting state between integration tests. This caused LoanReschedulingWithinCenterTest to fail on the first day of the month only because the "skip-repayment-on-first-day-of-month" configuration was modified but never reset by GlobalConfigurationTest.
Also updated other integration tests to reset and verify default global configurations.
FINERACT-722
In Docker, set JAVA_OPTS instead of FINERACT_TENANTS_URL.
Because ARG/ENV in the Dockerfile can't (easily) be changed at run-time.
At first I tried to override the ENTRYPOINT with a script which sets
JAVA_OPTS based on FINERACT_TENANTS_URL and then delegates to the original
/app-entrypoint.sh; that didn't immediately work, so this seems simpler.
Including make default tenant JDBC hostname & port configurable at Docker container run instead of build time.
This is required on secure Linux distributions such as
Fedora/CentOS/RHEL where SELinux is enabled, where without this
the mysql container fails to start due to:
ls: cannot open directory '/docker-entrypoint-initdb.d/': Permission denied
These Z,ro volume mount flags are (should be..) harmless and ignored
by Docker on other platforms, such as insecure ;) Linux distributions
without SELinux, or Windows and Mac.
PS: I personally don't actually use real Docker, but instead I use Podman
(see https://github.com/containers/libpod; install via `dnf install podman-docker`)
and https://github.com/containers/podman-compose/) via `pip3 install podman-compose`;
it's more secure (because it doesn't need a daemon and root to run containers).
- add ASL header (required by ASF RAT)
- change port to 8080 (TODO what was 8005 ?)
- add commands to create DBs
- fix .gitpod.yml database creation
- refine ports in .gitpod.yml
- add port 8081 to ignore in .gitpod.yml
- use test instead of (too slow) integrationTest in .gitpod.yml
- fix .gitpod.yml
by using https://yaml-multiline.info to fix start-up problem
due to comment inside tasks / command; ACK Tx to @meysholdt
for pointing out the right trick here.
see https://github.com/apache/fineract/pull/598/
This was an idea I had when wondering if the problem we hit
during the Gradle upgrade was just that Tomcat took longer to
boot Fineract (it turned out that that wasn't the cause).
I'm not sure if gradle-tomcat-plugin already does the equivalent
(but suspect it does not), but given that integrationTests work,
not entirely clear how much value this really adds.
Given that it doesn't really hurt either, perhaps we can add it anyway.
Now that we separated the build and runtime containers,
we can have only a JRE but not a JDK in the runtime container
(whereas the builder container will still have a JRE).
This makes for a smaller, and more importantly,
more secure, runtime container image.
Also removing git from runtime container, as it's not used.
which broke during the Gradle upgrade in FINERACT-700
do not fix Flyway related migrateTenantDB & Co, as those
are proposed to be removed in FINERACT-765 anyway. (If really
needed, some of my other WIP branches have the required changes
to make the Flyway related tasks work.)
because the (new, upgraded) Tomcat Gradle plugin needs more memory
(and this seems to make the build a bit faster, may be less is fine),
and it does not work with the Gradle daemon; this fixes:
> Task :tomcatRunWar
Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
Failed to initialize connector [Connector[HTTP/1.1-8080]]
Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"]
Failed to initialize connector [Connector[AJP/1.3-8009]]
Failed to initialize end point associated with ProtocolHandler ["http-bio-8443"]
Failed to initialize connector [Connector[HTTP/1.1-8443]]
which appears on the 2nd (only!) run of `./gradlew tomcatRunWAR`
(because the Tomcat embedded in the previous daemon-ized Gradle did not stop).
because the old one previously used caused an UnsupportedOperationException
with the new Gradle, see https://issues.apache.org/jira/browse/FINERACT-700
The spring-jms and activemq-broker versions are set to what they were on before.
we (of course), still, but only, run it in-App at runtime boot
This is a clean-up which removes something we don't actually need.
Most importantly, it unblocks the Gradle upgrade in FINERACT-700,
where this doesn't work anymore anyway (and while there's a fix
making it work on one of my branches, it seems simpler to just
remove it).
This fixes the following weird problem I ran into
during the Gradle & Spring Boot / OpenJPA Gradle plugins upgrades;
it's likely some Tomcat bug that got fixed between .54 and .94:
Unable to process resource element [jndi:/localhost/fineract-provider/WEB-INF/classes/org/apache/fineract/.../*.class] for annotations
This reduces the `docker build` time spent in
`STEP 6: COPY . fineract` from about 6m to 3m,
because it avoids copying locally built artifacts
into the container (which we don't need there, we're
just about to re-build them in the container anyway).
This also provides better isolation from the local dev
environment and the should lead to more reproducible
container builds.
as already removed from Requirements in previous commit 2f80674a2c
because the Gradle Wrapper is available in fineract-provider/gradle/wrapper and therefore not a pre-requisite to contribute
Root build.sh, for both back-end and front-end
Added -Penv=dev to incl. MariaDBj4
Include apps/**/* in ZIP, fixed UI URL in launcher, some doc
Set submodule Git rev to one that actually exists on remote
Don't use 'git submodule update --remote' but foreach ..
build-cloudbees.sh makes npm available
Better logging, and trying dev and prod dist UI