Compare commits
500
Commits
d6c10e8303
...
1db87b1e12
@@ -7,24 +7,28 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- name: Build the image
|
- name: Build the image
|
||||||
run: ./gradlew :fineract-provider:clean :fineract-provider:jibDockerBuild -x test
|
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:build :fineract-provider:jibDockerBuild -x test -x cucumber
|
||||||
- name: Start the stack
|
- name: Start the stack
|
||||||
run: docker-compose up -d
|
run: docker compose up -d
|
||||||
- name: Wait for stack to come up
|
- name: Wait for stack to come up
|
||||||
run: sleep 300
|
run: sleep 500
|
||||||
|
- name: Check the stack
|
||||||
|
run: docker ps
|
||||||
- name: Check health
|
- name: Check health
|
||||||
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
||||||
- name: Check info
|
- name: Check info
|
||||||
|
|||||||
@@ -7,24 +7,28 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- name: Build the image
|
- name: Build the image
|
||||||
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:jibDockerBuild -x test
|
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:build :fineract-provider:jibDockerBuild -x test -x cucumber
|
||||||
- name: Start the Standalone Stack
|
- name: Start the Standalone Stack
|
||||||
run: docker-compose -f docker-compose-postgresql.yml up -d
|
run: docker compose -f docker-compose-postgresql.yml up -d
|
||||||
- name: Wait for stack to come up
|
- name: Wait for stack to come up
|
||||||
run: sleep 300
|
run: sleep 500
|
||||||
|
- name: Check the stack
|
||||||
|
run: docker ps
|
||||||
- name: Check health
|
- name: Check health
|
||||||
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
||||||
- name: Check info
|
- name: Check info
|
||||||
|
|||||||
@@ -6,25 +6,27 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
- name: Congfigure vega-cli
|
- name: Congfigure vega-cli
|
||||||
run: npm i -g vega-cli --unsafe
|
run: npm i -g vega-cli --unsafe
|
||||||
- name: Validate Gradle wrapper
|
- name: Validate Gradle wrapper
|
||||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||||
- name: Install additional software
|
- name: Install additional software
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mariad:
|
mariad:
|
||||||
image: mariadb:11.0
|
image: mariadb:11.2
|
||||||
ports:
|
ports:
|
||||||
- 3306:3306
|
- 3306:3306
|
||||||
env:
|
env:
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
options: --health-cmd="healthcheck.sh --su-mysql --connect --innodb_initialized" --health-interval=5s --health-timeout=2s --health-retries=3
|
options: --health-cmd="healthcheck.sh --su-mysql --connect --innodb_initialized" --health-interval=5s --health-timeout=2s --health-retries=3
|
||||||
|
|
||||||
mock-oauth2-server:
|
mock-oauth2-server:
|
||||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||||
ports:
|
ports:
|
||||||
- 9000:9000
|
- 9000:9000
|
||||||
env:
|
env:
|
||||||
@@ -30,20 +30,22 @@ jobs:
|
|||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
- name: Congfigure vega-cli
|
- name: Congfigure vega-cli
|
||||||
run: npm i -g vega-cli --unsafe
|
run: npm i -g vega-cli --unsafe
|
||||||
- name: Validate Gradle wrapper
|
- name: Validate Gradle wrapper
|
||||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||||
- name: Verify MariaDB connection
|
- name: Verify MariaDB connection
|
||||||
run: |
|
run: |
|
||||||
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
||||||
@@ -79,24 +81,25 @@ jobs:
|
|||||||
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
||||||
run: |
|
run: |
|
||||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||||
./gradlew --no-daemon --console=plain cucumber
|
./gradlew --no-daemon --console=plain cucumber -x :fineract-e2e-tests-runner:cucumber
|
||||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test
|
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -x :fineract-e2e-tests-runner:test
|
||||||
./gradlew --no-daemon --console=plain :twofactor-tests:test
|
./gradlew --no-daemon --console=plain :twofactor-tests:test
|
||||||
./gradlew --no-daemon --console=plain :oauth2-tests:test
|
./gradlew --no-daemon --console=plain :oauth2-tests:test
|
||||||
|
|
||||||
- name: Archive test results
|
- name: Archive test results
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: test-results
|
name: test-results
|
||||||
path: |
|
path: |
|
||||||
|
build/reports/
|
||||||
integration-tests/build/reports/
|
integration-tests/build/reports/
|
||||||
twofactor-tests/build/reports/
|
twofactor-tests/build/reports/
|
||||||
oauth2-tests/build/reports/
|
oauth2-tests/build/reports/
|
||||||
|
|
||||||
- name: Archive server logs
|
- name: Archive server logs
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: server-logs
|
name: server-logs
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mariad:
|
mariad:
|
||||||
image: mysql:8.0
|
image: mysql:8.3
|
||||||
ports:
|
ports:
|
||||||
- 3306:3306
|
- 3306:3306
|
||||||
env:
|
env:
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
||||||
|
|
||||||
mock-oauth2-server:
|
mock-oauth2-server:
|
||||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||||
ports:
|
ports:
|
||||||
- 9000:9000
|
- 9000:9000
|
||||||
env:
|
env:
|
||||||
@@ -30,20 +30,22 @@ jobs:
|
|||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
- name: Congfigure vega-cli
|
- name: Congfigure vega-cli
|
||||||
run: npm i -g vega-cli --unsafe
|
run: npm i -g vega-cli --unsafe
|
||||||
- name: Validate Gradle wrapper
|
- name: Validate Gradle wrapper
|
||||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||||
- name: Verify MariaDB connection
|
- name: Verify MariaDB connection
|
||||||
run: |
|
run: |
|
||||||
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
||||||
@@ -79,24 +81,25 @@ jobs:
|
|||||||
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
||||||
run: |
|
run: |
|
||||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||||
./gradlew --no-daemon --console=plain cucumber
|
./gradlew --no-daemon --console=plain cucumber -x :fineract-e2e-tests-runner:cucumber
|
||||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -PdbType=mysql
|
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test :fineract-e2e-tests-runner:test -PdbType=mysql
|
||||||
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=mysql
|
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=mysql
|
||||||
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=mysql
|
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=mysql
|
||||||
|
|
||||||
- name: Archive test results
|
- name: Archive test results
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: test-results
|
name: test-results
|
||||||
path: |
|
path: |
|
||||||
|
build/reports/
|
||||||
integration-tests/build/reports/
|
integration-tests/build/reports/
|
||||||
twofactor-tests/build/reports/
|
twofactor-tests/build/reports/
|
||||||
oauth2-tests/build/reports/
|
oauth2-tests/build/reports/
|
||||||
|
|
||||||
- name: Archive server logs
|
- name: Archive server logs
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: server-logs
|
name: server-logs
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:15.3
|
image: postgres:16.1
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 5432:5432
|
||||||
env:
|
env:
|
||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
options: --health-cmd="pg_isready -q -d postgres -U root" --health-interval=5s --health-timeout=2s --health-retries=3
|
options: --health-cmd="pg_isready -q -d postgres -U root" --health-interval=5s --health-timeout=2s --health-retries=3
|
||||||
|
|
||||||
mock-oauth2-server:
|
mock-oauth2-server:
|
||||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||||
ports:
|
ports:
|
||||||
- 9000:9000
|
- 9000:9000
|
||||||
env:
|
env:
|
||||||
@@ -31,20 +31,22 @@ jobs:
|
|||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
- name: Congfigure vega-cli
|
- name: Congfigure vega-cli
|
||||||
run: npm i -g vega-cli --unsafe
|
run: npm i -g vega-cli --unsafe
|
||||||
- name: Validate Gradle wrapper
|
- name: Validate Gradle wrapper
|
||||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||||
- name: Verify PostgreSQL connection
|
- name: Verify PostgreSQL connection
|
||||||
run: |
|
run: |
|
||||||
while ! pg_isready -d postgres -U root -h 127.0.0.1 -p 5432 ; do
|
while ! pg_isready -d postgres -U root -h 127.0.0.1 -p 5432 ; do
|
||||||
@@ -80,24 +82,25 @@ jobs:
|
|||||||
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
||||||
run: |
|
run: |
|
||||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||||
./gradlew --no-daemon --console=plain cucumber
|
./gradlew --no-daemon --console=plain cucumber -x :fineract-e2e-tests-runner:cucumber
|
||||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql
|
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test :fineract-e2e-tests-runner:test -PdbType=postgresql
|
||||||
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=postgresql
|
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=postgresql
|
||||||
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=postgresql
|
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=postgresql
|
||||||
|
|
||||||
- name: Archive test results
|
- name: Archive test results
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: test-results
|
name: test-results
|
||||||
path: |
|
path: |
|
||||||
|
build/reports/
|
||||||
integration-tests/build/reports/
|
integration-tests/build/reports/
|
||||||
twofactor-tests/build/reports/
|
twofactor-tests/build/reports/
|
||||||
oauth2-tests/build/reports/
|
oauth2-tests/build/reports/
|
||||||
|
|
||||||
- name: Archive server logs
|
- name: Archive server logs
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||||
with:
|
with:
|
||||||
name: server-logs
|
name: server-logs
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
name: Fineract Tests
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
env:
|
||||||
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
|
with:
|
||||||
|
java-version: '17'
|
||||||
|
distribution: 'zulu'
|
||||||
|
cache: gradle
|
||||||
|
- name: Build the image
|
||||||
|
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:build :fineract-provider:jibDockerBuild -x test -x cucumber
|
||||||
|
- name: Start the Fineract stack
|
||||||
|
run: docker compose -f docker-compose-postgresql.yml up -d
|
||||||
|
- name: Wait for stack to come up
|
||||||
|
run: sleep 400
|
||||||
|
- name: Check the stack
|
||||||
|
run: docker ps
|
||||||
|
- name: Check health Manager
|
||||||
|
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
||||||
|
- name: Execute tests
|
||||||
|
env:
|
||||||
|
BASE_URL: https://localhost:8443
|
||||||
|
TEST_USERNAME: mifos
|
||||||
|
TEST_PASSWORD: password
|
||||||
|
TEST_TENANT_ID: default
|
||||||
|
INITIALIZATION_ENABLED: true
|
||||||
|
EVENT_VERIFICATION_ENABLED: false
|
||||||
|
run: ./gradlew --no-daemon --console=plain fineract-e2e-tests-runner:cucumber --tags 'not @Skip' allureReport
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
name: Fineract Publish to DockerHub
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
tags:
|
||||||
|
- 1.*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
env:
|
||||||
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Source Code
|
||||||
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
|
with:
|
||||||
|
java-version: '17'
|
||||||
|
distribution: 'zulu'
|
||||||
|
cache: gradle
|
||||||
|
- name: Extract branch name
|
||||||
|
shell: bash
|
||||||
|
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
|
||||||
|
id: extract_branch
|
||||||
|
- name: Build the Apache Fineract image
|
||||||
|
run: |
|
||||||
|
./gradlew --no-daemon --console=plain :fineract-provider:jib -x test -x cucumber -Djib.to.auth.username=${{secrets.DOCKERHUB_USER}} -Djib.to.auth.password=${{secrets.DOCKERHUB_TOKEN}} -Djib.from.platforms=linux/amd64,linux/arm64 -Djib.to.image=apache/fineract -Djib.to.tags=${{ steps.extract_branch.outputs.branch }}
|
||||||
@@ -7,24 +7,28 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- name: Build the image
|
- name: Build the image
|
||||||
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:jibDockerBuild -x test
|
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:build :fineract-provider:jibDockerBuild -x test -x cucumber
|
||||||
- name: Start the ActiveMQ Stack
|
- name: Start the ActiveMQ Stack
|
||||||
run: docker-compose -f docker-compose-postgresql-activemq.yml up --scale fineract-worker=1 -d
|
run: docker compose -f docker-compose-postgresql-activemq.yml up --scale fineract-worker=1 -d
|
||||||
- name: Wait for stack to come up
|
- name: Wait for stack to come up
|
||||||
run: sleep 500
|
run: sleep 500
|
||||||
|
- name: Check the stack
|
||||||
|
run: docker ps
|
||||||
- name: Check health Manager
|
- name: Check health Manager
|
||||||
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
||||||
- name: Check health Worker1
|
- name: Check health Worker1
|
||||||
@@ -34,4 +38,4 @@ jobs:
|
|||||||
- name: Check info Worker1
|
- name: Check info Worker1
|
||||||
run: (( $(curl -f -k --retry 5 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info | wc --chars) > 100 ))
|
run: (( $(curl -f -k --retry 5 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info | wc --chars) > 100 ))
|
||||||
- name: Run Smoke Test with Remote COB
|
- name: Run Smoke Test with Remote COB
|
||||||
run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest" -PcargoDisabled
|
run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest.saleActiveLoanToExternalAssetOwnerAndBuybackADayLater" -PcargoDisabled
|
||||||
|
|||||||
@@ -7,24 +7,28 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- name: Build the image
|
- name: Build the image
|
||||||
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:jibDockerBuild -x test
|
run: ./gradlew --no-daemon --console=plain :fineract-provider:clean :fineract-provider:build :fineract-provider:jibDockerBuild -x test -x cucumber
|
||||||
- name: Start the Kafka Stack
|
- name: Start the Kafka Stack
|
||||||
run: docker-compose -f docker-compose-postgresql-kafka.yml up --scale fineract-worker=1 -d
|
run: docker compose -f docker-compose-postgresql-kafka.yml up --scale fineract-worker=1 -d
|
||||||
- name: Wait for stack to come up
|
- name: Wait for stack to come up
|
||||||
run: sleep 500
|
run: sleep 500
|
||||||
|
- name: Check the stack
|
||||||
|
run: docker ps
|
||||||
- name: Check health Manager
|
- name: Check health Manager
|
||||||
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
run: curl -f -k --retry 10 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
|
||||||
- name: Check health Worker1
|
- name: Check health Worker1
|
||||||
@@ -34,4 +38,4 @@ jobs:
|
|||||||
- name: Check info Worker1
|
- name: Check info Worker1
|
||||||
run: (( $(curl -f -k --retry 5 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info | wc --chars) > 100 ))
|
run: (( $(curl -f -k --retry 5 --retry-connrefused --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info | wc --chars) > 100 ))
|
||||||
- name: Run Smoke Test with Remote COB
|
- name: Run Smoke Test with Remote COB
|
||||||
run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest" -PcargoDisabled
|
run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest.saleActiveLoanToExternalAssetOwnerAndBuybackADayLater" -PcargoDisabled
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ permissions:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
env:
|
env:
|
||||||
TZ: Asia/Kolkata
|
TZ: Asia/Kolkata
|
||||||
SONAR_ORGANIZATION: ${{ secrets.SONAR_ORGANIZATION }}
|
SONAR_ORGANIZATION: ${{ secrets.SONAR_ORGANIZATION }}
|
||||||
@@ -20,14 +20,16 @@ jobs:
|
|||||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
- name: Validate Gradle wrapper
|
- name: Validate Gradle wrapper
|
||||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||||
- name: Sonarqube
|
- name: Sonarqube
|
||||||
run: ./gradlew --no-daemon --console=plain -Dsonar.verbose=true -Dsonar.login=$SONAR_TOKEN -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.organization=$SONAR_ORGANIZATION -Dsonar.projectKey=$SONAR_PROJECT_KEY --info --stacktrace sonarqube
|
run: ./gradlew --no-daemon --console=plain -Dsonar.verbose=true -Dsonar.login=$SONAR_TOKEN -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.organization=$SONAR_ORGANIZATION -Dsonar.projectKey=$SONAR_PROJECT_KEY --info --stacktrace sonarqube
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
pull-requests: write # for actions/stale to close stale PRs
|
pull-requests: write # for actions/stale to close stale PRs
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8
|
- uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# stale-issue-message: 'Stale issue message'
|
# stale-issue-message: 'Stale issue message'
|
||||||
|
|||||||
+4
-4
@@ -25,8 +25,8 @@ licenses
|
|||||||
**/.asciidoctor/images/*
|
**/.asciidoctor/images/*
|
||||||
**/.asciidoctor/diagram/*
|
**/.asciidoctor/diagram/*
|
||||||
**/images/diag-*.svg
|
**/images/diag-*.svg
|
||||||
fineract-avro-schemas/out/
|
|
||||||
fineract-client/out/
|
|
||||||
fineract-provider/src/main/generated/
|
fineract-provider/src/main/generated/
|
||||||
integration-tests/out/
|
|
||||||
module/dummy/starter/out/
|
**/out/
|
||||||
|
gradleExp/
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"jfrConfig": {
|
||||||
|
"settings": "profile"
|
||||||
|
},
|
||||||
|
"asyncProfilerConfig": {
|
||||||
|
"jfrsync": true,
|
||||||
|
"alloc": true,
|
||||||
|
"event": "wall",
|
||||||
|
"misc": ""
|
||||||
|
},
|
||||||
|
"file": "$PROJECT_DIR/profile.jfr",
|
||||||
|
"conversionConfig": {
|
||||||
|
"nonProjectPackagePrefixes": [
|
||||||
|
"java.",
|
||||||
|
"javax.",
|
||||||
|
"kotlin.",
|
||||||
|
"jdk.",
|
||||||
|
"com.google.",
|
||||||
|
"org.apache.",
|
||||||
|
"org.spring.",
|
||||||
|
"sun.",
|
||||||
|
"scala."
|
||||||
|
],
|
||||||
|
"enableMarkers": true,
|
||||||
|
"initialVisibleThreads": 10,
|
||||||
|
"initialSelectedThreads": 10,
|
||||||
|
"includeGCThreads": false,
|
||||||
|
"includeInitialSystemProperty": false,
|
||||||
|
"includeInitialEnvironmentVariables": false,
|
||||||
|
"includeSystemProcesses": false,
|
||||||
|
"ignoredEvents": [
|
||||||
|
"jdk.ActiveSetting",
|
||||||
|
"jdk.ActiveRecording",
|
||||||
|
"jdk.BooleanFlag",
|
||||||
|
"jdk.IntFlag",
|
||||||
|
"jdk.DoubleFlag",
|
||||||
|
"jdk.LongFlag",
|
||||||
|
"jdk.NativeLibrary",
|
||||||
|
"jdk.StringFlag",
|
||||||
|
"jdk.UnsignedIntFlag",
|
||||||
|
"jdk.UnsignedLongFlag",
|
||||||
|
"jdk.InitialSystemProperty",
|
||||||
|
"jdk.InitialEnvironmentVariable",
|
||||||
|
"jdk.SystemProcess",
|
||||||
|
"jdk.ModuleExport",
|
||||||
|
"jdk.ModuleRequire"
|
||||||
|
],
|
||||||
|
"minRequiredItemsPerThread": 3
|
||||||
|
},
|
||||||
|
"additionalGradleTargets": [
|
||||||
|
{
|
||||||
|
"targetPrefix": "quarkus",
|
||||||
|
"optionForVmArgs": "-Djvm.args",
|
||||||
|
"description": "Example quarkus config, adding profiling arguments via -Djvm.args option to the Gradle task run"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"additionalMavenTargets": [
|
||||||
|
{
|
||||||
|
"targetPrefix": "quarkus:",
|
||||||
|
"optionForVmArgs": "-Djvm.args",
|
||||||
|
"description": "Example quarkus config, adding profiling arguments via -Djvm.args option to the Maven goal run"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
Apache Fineract: A Platform for Microfinance
|
Apache Fineract: A Platform for Microfinance
|
||||||
============
|
============
|
||||||
[](https://validator.swagger.io/validator/debug?url=https://demo.fineract.dev/fineract-provider/swagger-ui/fineract.yaml) [](https://github.com/apache/fineract/actions/workflows/build.yml) [](https://hub.docker.com/r/apache/fineract) [](https://hub.docker.com/r/apache/fineract/builds) [](https://sonarcloud.io/summary/new_code?id=apache_fineract)
|
[](https://validator.swagger.io/validator/debug?url=https://sandbox.mifos.community/fineract-provider/swagger-ui/fineract.yaml) [](https://github.com/apache/fineract/actions/workflows/build.yml) [](https://hub.docker.com/r/apache/fineract) [](https://hub.docker.com/r/apache/fineract/builds) [](https://sonarcloud.io/summary/new_code?id=apache_fineract)
|
||||||
|
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
@@ -22,15 +22,15 @@ If you are interested in contributing to this project, but perhaps don't quite k
|
|||||||
REQUIREMENTS
|
REQUIREMENTS
|
||||||
============
|
============
|
||||||
* `Java >= 17` (Azul Zulu JVM is tested by our CI on GitHub Actions)
|
* `Java >= 17` (Azul Zulu JVM is tested by our CI on GitHub Actions)
|
||||||
* MariaDB `10.9`
|
* MariaDB `11.2`
|
||||||
|
|
||||||
You can run the required version of the database server in a container, instead of having to install it, like this:
|
You can run the required version of the database server in a container, instead of having to install it, like this:
|
||||||
|
|
||||||
docker run --name mariadb-10.9 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:10.9
|
docker run --name mariadb-11.2 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.2
|
||||||
|
|
||||||
and stop and destroy it like this:
|
and stop and destroy it like this:
|
||||||
|
|
||||||
docker rm -f mariadb-10.9
|
docker rm -f mariadb-11.2
|
||||||
|
|
||||||
<br>Beware that this database container database keeps its state inside the container and not on the host filesystem. It is lost when you destroy (rm) this container. This is typically fine for development. See [Caveats: Where to Store Data on the database container documentation](https://hub.docker.com/_/mariadb) re. how to make it persistent instead of ephemeral.<br>
|
<br>Beware that this database container database keeps its state inside the container and not on the host filesystem. It is lost when you destroy (rm) this container. This is typically fine for development. See [Caveats: Where to Store Data on the database container documentation](https://hub.docker.com/_/mariadb) re. how to make it persistent instead of ephemeral.<br>
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ Run the following commands:
|
|||||||
============
|
============
|
||||||
1. Clone the repository or download and extract the archive file to your local directory.
|
1. Clone the repository or download and extract the archive file to your local directory.
|
||||||
2. Run `./gradlew clean bootJar` to build a modern cloud native fully self contained JAR file which will be created at `fineract-provider/build/libs` directory.
|
2. Run `./gradlew clean bootJar` to build a modern cloud native fully self contained JAR file which will be created at `fineract-provider/build/libs` directory.
|
||||||
3. As we are not allowed to include a JDBC driver in the built JAR, download a JDBC driver of your choice. For example: `wget https://downloads.mariadb.com/Connectors/java/connector-java-2.7.5/mariadb-java-client-2.7.5.jar`
|
3. As we are not allowed to include a JDBC driver in the built JAR, download a JDBC driver of your choice. For example: `wget https://downloads.mariadb.com/Connectors/java/connector-java-3.3.2/mariadb-java-client-3.3.2.jar`
|
||||||
4. Start the jar and pass the directory where you have downloaded the JDBC driver as loader.path, for example: `java -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar` (does not require external Tomcat)
|
4. Start the jar and pass the directory where you have downloaded the JDBC driver as loader.path, for example: `java -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar` (does not require external Tomcat)
|
||||||
|
|
||||||
NOTE: we cannot upgrade to version 3.0.x of the MariaDB driver just yet; have to wait until 3.0.4 is out for a bug fix.
|
NOTE: we cannot upgrade to version 3.0.x of the MariaDB driver just yet; have to wait until 3.0.4 is out for a bug fix.
|
||||||
@@ -191,7 +191,8 @@ Now to run a new Fineract instance you can simply:
|
|||||||
1. `git clone https://github.com/apache/fineract.git ; cd fineract`
|
1. `git clone https://github.com/apache/fineract.git ; cd fineract`
|
||||||
1. for windows, use `git clone https://github.com/apache/fineract.git --config core.autocrlf=input ; cd fineract`
|
1. for windows, use `git clone https://github.com/apache/fineract.git --config core.autocrlf=input ; cd fineract`
|
||||||
1. `./gradlew :fineract-provider:jibDockerBuild -x test`
|
1. `./gradlew :fineract-provider:jibDockerBuild -x test`
|
||||||
1. `docker-compose up -d`
|
1. install the Loki log driver with `docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions`
|
||||||
|
1. `docker compose -f docker-compose-development.yml up -d`
|
||||||
1. fineract (back-end) is running at https://localhost:8443/fineract-provider/
|
1. fineract (back-end) is running at https://localhost:8443/fineract-provider/
|
||||||
1. wait for https://localhost:8443/fineract-provider/actuator/health to return `{"status":"UP"}`
|
1. wait for https://localhost:8443/fineract-provider/actuator/health to return `{"status":"UP"}`
|
||||||
1. you must go to https://localhost:8443 and remember to accept the self-signed SSL certificate of the API once in your browser, otherwise you get a message that is rather misleading from the UI.
|
1. you must go to https://localhost:8443 and remember to accept the self-signed SSL certificate of the API once in your browser, otherwise you get a message that is rather misleading from the UI.
|
||||||
@@ -206,6 +207,16 @@ _(Note that in previous versions, the `mysqlserver` environment variable used at
|
|||||||
`docker run` time did something similar; this has changed in [FINERACT-773](https://issues.apache.org/jira/browse/FINERACT-773)),
|
`docker run` time did something similar; this has changed in [FINERACT-773](https://issues.apache.org/jira/browse/FINERACT-773)),
|
||||||
and the `mysqlserver` environment variable is now no longer supported.)_
|
and the `mysqlserver` environment variable is now no longer supported.)_
|
||||||
|
|
||||||
|
The logfiles and the Java Flight Recorder output are available in `PROJECT_ROOT/build/fineract/logs`. If you use IntelliJ then you can double-click on the `.jfr` file and open it with the IDE. You can also download Azul Mission Control from here https://www.azul.com/products/components/azul-mission-control/ to analyze the Java Flight Recorder file.
|
||||||
|
|
||||||
|
NOTE: If you have issues with the file permissions and Docker Compose then you might need to change the variable values for `FINERACT_USER` and `FINERACT_GROUP` in `PROJECT_ROOT/config/docker/env/fineract-common.env`. You can find out what values you need to put there with the following commands:
|
||||||
|
|
||||||
|
```
|
||||||
|
id -u ${USER}
|
||||||
|
id -u ${GROUP}
|
||||||
|
```
|
||||||
|
|
||||||
|
Please make sure that you are not checking in your changed values. The defaults should normally work for most people.
|
||||||
|
|
||||||
Connection pool configuration
|
Connection pool configuration
|
||||||
=============================
|
=============================
|
||||||
@@ -217,7 +228,7 @@ NOTE: we'll keep backwards compatibility until one of the next releases to ensur
|
|||||||
<br>SSL CONFIGURATION
|
<br>SSL CONFIGURATION
|
||||||
=================
|
=================
|
||||||
|
|
||||||
Read also [the HTTPS related doc](fineract-doc/src/docs/en/deployment.adoc#https).
|
Read also [the HTTPS related doc](fineract-doc/src/docs/en/chapters/deployment/https.adoc).
|
||||||
|
|
||||||
By default SSL is enabled, but all SSL related properties are now tunable. SSL can be turned off by setting the environment variable `FINERACT_SERVER_SSL_ENABLED` to false. If you do that then please make sure to also change the server port to `8080` via the variable `FINERACT_SERVER_PORT`, just for the sake of keeping the conventions.
|
By default SSL is enabled, but all SSL related properties are now tunable. SSL can be turned off by setting the environment variable `FINERACT_SERVER_SSL_ENABLED` to false. If you do that then please make sure to also change the server port to `8080` via the variable `FINERACT_SERVER_PORT`, just for the sake of keeping the conventions.
|
||||||
You can choose now easily a different SSL keystore by setting `FINERACT_SERVER_SSL_KEY_STORE` with a path to a different (not embedded) keystore. The password can be set via `FINERACT_SERVER_SSL_KEY_STORE_PASSWORD`. See the `application.properties` file and the latest Spring Boot documentation (https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html) for more details.
|
You can choose now easily a different SSL keystore by setting `FINERACT_SERVER_SSL_KEY_STORE` with a path to a different (not embedded) keystore. The password can be set via `FINERACT_SERVER_SSL_KEY_STORE_PASSWORD`. See the `application.properties` file and the latest Spring Boot documentation (https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html) for more details.
|
||||||
@@ -376,7 +387,7 @@ The progress of this project can be viewed here: [View change log](https://githu
|
|||||||
License
|
License
|
||||||
============
|
============
|
||||||
|
|
||||||
This project is licensed under Apache License Version 2.0. See <https://github.com/apache/incubator-fineract/blob/develop/LICENSE.md> for reference.
|
This project is licensed under Apache License Version 2.0. See <https://github.com/apache/fineract/blob/develop/APACHE_LICENSETEXT.md> for reference.
|
||||||
|
|
||||||
The Connector/J JDBC Driver client library from MariaDB.org, which is licensed under the LGPL,
|
The Connector/J JDBC Driver client library from MariaDB.org, which is licensed under the LGPL,
|
||||||
is used in development when running integration tests that use the Liquibase library. That JDBC
|
is used in development when running integration tests that use the Liquibase library. That JDBC
|
||||||
@@ -391,11 +402,11 @@ complies with the [Apache Software Foundation third-party license policy](https:
|
|||||||
<br><br>APACHE FINERACT PLATFORM API
|
<br><br>APACHE FINERACT PLATFORM API
|
||||||
============
|
============
|
||||||
|
|
||||||
The API for Fineract is documented in [apiLive.htm](fineract-provider/src/main/resources/static/api-docs/apiLive.htm), and the [apiLive.htm can be viewed on Fineract.dev](https://fineract.apache.org/legacy-docs/apiLive.htm "API Documentation"). If you have your own Fineract instance running, you can find this documentation under [/fineract-provider/api-docs/apiLive.htm](https://localhost:8443/fineract-provider/api-docs/apiLive.htm).
|
The API for Fineract is documented in [apiLive.htm](fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm), and the [apiLive.htm can be viewed on fineract.apache.org](https://fineract.apache.org/docs/legacy/ "API Documentation"). If you have your own Fineract instance running, you can find this documentation under [/fineract-provider/legacy-docs/apiLive.htm](https://localhost:8443/fineract-provider/legacy-docs/apiLive.htm).
|
||||||
|
|
||||||
The Swagger documentation (work in progress; see [FINERACT-733](https://issues.apache.org/jira/browse/FINERACT-733)) can be accessed under [/fineract-provider/swagger-ui/index.html](https://localhost:8443/fineract-provider/swagger-ui/index.html) and [live Swagger UI here on Fineract.dev](https://demo.fineract.dev/fineract-provider/swagger-ui/index.html).
|
The Swagger documentation (work in progress; see [FINERACT-733](https://issues.apache.org/jira/browse/FINERACT-733)) can be accessed under [/fineract-provider/swagger-ui/index.html](https://localhost:8443/fineract-provider/swagger-ui/index.html) and [live Swagger UI here on Fineract.dev](https://sandbox.mifos.community/fineract-provider/swagger-ui/index.html).
|
||||||
|
|
||||||
Apache Fineract supports client code generation using [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) based on the [OpenAPI Specification](https://swagger.io/specification/). For more instructions on how to generate the client code, check [docs/developers/swagger/client.md](docs/developers/swagger/client.md).
|
Apache Fineract supports client code generation using [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) based on the [OpenAPI Specification](https://swagger.io/specification/). For more instructions on how to generate the client code, check [fineract-doc/src/docs/en/chapters/sdk/client.adoc](fineract-doc/src/docs/en/chapters/sdk/client.adoc).
|
||||||
|
|
||||||
|
|
||||||
<br>API CLIENTS (Web UIs, Mobile, etc.)
|
<br>API CLIENTS (Web UIs, Mobile, etc.)
|
||||||
@@ -410,7 +421,7 @@ Apache Fineract supports client code generation using [Swagger Codegen](https://
|
|||||||
<br>ONLINE DEMOS
|
<br>ONLINE DEMOS
|
||||||
============
|
============
|
||||||
|
|
||||||
* [fineract.dev](https://www.fineract.dev) always runs the latest version of this code
|
* [sandbox.mifos.community](https://sandbox.mifos.community) always runs the latest version of this code
|
||||||
* [demo.mifos.io](https://demo.mifos.io) A demo account is provided for users to experience the functionality of the Community App. Users can use "mifos" for USERNAME and "password" for PASSWORD (without quotation marks).
|
* [demo.mifos.io](https://demo.mifos.io) A demo account is provided for users to experience the functionality of the Community App. Users can use "mifos" for USERNAME and "password" for PASSWORD (without quotation marks).
|
||||||
* [Swagger-UI Demo video](https://www.youtube.com/watch?v=FlVd-0YAo6c) This is a demo video for Swagger-UI documentation, more information [here](https://github.com/apache/fineract#swagger-ui-documentation).
|
* [Swagger-UI Demo video](https://www.youtube.com/watch?v=FlVd-0YAo6c) This is a demo video for Swagger-UI documentation, more information [here](https://github.com/apache/fineract#swagger-ui-documentation).
|
||||||
|
|
||||||
@@ -435,7 +446,7 @@ Apache Fineract / Mifos X Demo (November 2016) - <https://www.youtube.com/watch?
|
|||||||
============
|
============
|
||||||
|
|
||||||
We use Swagger-UI to generate and maintain our API documentation, you can see the demo video [here](https://www.youtube.com/watch?v=FlVd-0YAo6c) or a live version
|
We use Swagger-UI to generate and maintain our API documentation, you can see the demo video [here](https://www.youtube.com/watch?v=FlVd-0YAo6c) or a live version
|
||||||
[here](https://demo.fineract.dev/fineract-provider/swagger-ui/index.html). If you interested to know more about Swagger-UI you can check their [website](https://swagger.io/).
|
[here](https://sandbox.mifos.community/fineract-provider/swagger-ui/index.html). If you interested to know more about Swagger-UI you can check their [website](https://swagger.io/).
|
||||||
|
|
||||||
<br>GORVENANCE AND POLICIES
|
<br>GORVENANCE AND POLICIES
|
||||||
=======================
|
=======================
|
||||||
@@ -466,7 +477,8 @@ documents the process through which you can become a committer in this project.
|
|||||||
Pull Requests
|
Pull Requests
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
We request that your commit message include a FINERACT JIRA issue, recommended to be put in parentheses at the end of the first line. Start with an upper case imperative verb (not past form), and a short but concise clear description. (E.g. _Add enforced HideUtilityClassConstructor checkstyle (FINERACT-821)_ or _Fix inability to reschedule when interest accrued larger than EMI (FINERACT-1109)_ etc.).
|
We request that your commit message include a FINERACT JIRA issue, and a one-liner that describe the changes.
|
||||||
|
Start with an upper case imperative verb (not past form), and a short but concise clear description. (E.g. "FINERACT-821: Add enforced HideUtilityClassConstructor checkstyle").
|
||||||
|
|
||||||
If your PR is failing to pass our CI build due to a test failure, then:
|
If your PR is failing to pass our CI build due to a test failure, then:
|
||||||
|
|
||||||
|
|||||||
+97
-41
@@ -1,4 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
* or more contributor license agreements. See the NOTICE file
|
* or more contributor license agreements. See the NOTICE file
|
||||||
* distributed with this work for additional information
|
* distributed with this work for additional information
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
// TODO: this is work in progress, please follow FINERACT-1171
|
// TODO: this is work in progress, please follow FINERACT-1171
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
jacocoVersion = '0.8.10'
|
jacocoVersion = '0.8.11'
|
||||||
retrofitVersion = '2.9.0'
|
retrofitVersion = '2.9.0'
|
||||||
okhttpVersion = '4.9.3'
|
okhttpVersion = '4.9.3'
|
||||||
oltuVersion = '1.0.1'
|
oltuVersion = '1.0.1'
|
||||||
@@ -28,23 +28,45 @@ buildscript {
|
|||||||
[
|
[
|
||||||
'fineract-api',
|
'fineract-api',
|
||||||
'fineract-core',
|
'fineract-core',
|
||||||
|
'fineract-accounting',
|
||||||
'fineract-provider',
|
'fineract-provider',
|
||||||
|
'fineract-branch',
|
||||||
|
'fineract-document',
|
||||||
'fineract-investor',
|
'fineract-investor',
|
||||||
|
'fineract-charge',
|
||||||
|
'fineract-rates',
|
||||||
|
'fineract-tax',
|
||||||
'fineract-loan',
|
'fineract-loan',
|
||||||
|
'fineract-savings',
|
||||||
|
'fineract-report',
|
||||||
'integration-tests',
|
'integration-tests',
|
||||||
'twofactor-tests',
|
'twofactor-tests',
|
||||||
'oauth2-tests',
|
'oauth2-tests',
|
||||||
'fineract-client',
|
'fineract-client',
|
||||||
'fineract-avro-schemas'
|
'fineract-avro-schemas',
|
||||||
|
'fineract-e2e-tests-core',
|
||||||
|
'fineract-e2e-tests-runner',
|
||||||
|
'fineract-progressive-loan'
|
||||||
].contains(it.name)
|
].contains(it.name)
|
||||||
}
|
}
|
||||||
fineractPublishProjects = subprojects.findAll{
|
fineractPublishProjects = subprojects.findAll{
|
||||||
[
|
[
|
||||||
'fineract-avro-schemas',
|
'fineract-avro-schemas',
|
||||||
|
'fineract-api',
|
||||||
'fineract-client',
|
'fineract-client',
|
||||||
|
'fineract-core',
|
||||||
|
'fineract-accounting',
|
||||||
'fineract-provider',
|
'fineract-provider',
|
||||||
'fineract-investor',
|
'fineract-investor',
|
||||||
'fineract-loan'
|
'fineract-charge',
|
||||||
|
'fineract-rates',
|
||||||
|
'fineract-tax',
|
||||||
|
'fineract-loan',
|
||||||
|
'fineract-savings',
|
||||||
|
'fineract-report',
|
||||||
|
'fineract-branch',
|
||||||
|
'fineract-document',
|
||||||
|
'fineract-progressive-loan'
|
||||||
].contains(it.name)
|
].contains(it.name)
|
||||||
}
|
}
|
||||||
npmRepository = 'https://npm.pkg.github.com'
|
npmRepository = 'https://npm.pkg.github.com'
|
||||||
@@ -58,37 +80,39 @@ buildscript {
|
|||||||
classpath 'org.eclipse.persistence:eclipselink:4.0.0'
|
classpath 'org.eclipse.persistence:eclipselink:4.0.0'
|
||||||
classpath 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
|
classpath 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
|
||||||
classpath 'com.google.cloud.tools:jib-layer-filter-extension-gradle:0.3.0'
|
classpath 'com.google.cloud.tools:jib-layer-filter-extension-gradle:0.3.0'
|
||||||
classpath 'org.apache.commons:commons-lang3:3.12.0'
|
classpath 'org.apache.commons:commons-lang3:3.14.0'
|
||||||
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.11'
|
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22'
|
||||||
classpath 'jakarta.servlet:jakarta.servlet-api:6.0.0'
|
classpath 'jakarta.servlet:jakarta.servlet-api:6.0.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "org.barfuin.gradle.taskinfo" version "2.1.0"
|
id 'me.qoomon.git-versioning' version '6.4.3'
|
||||||
id 'com.adarshr.test-logger' version '3.2.0'
|
id "org.barfuin.gradle.taskinfo" version "2.2.0"
|
||||||
id 'com.diffplug.spotless' version '6.19.0' apply false
|
id 'com.adarshr.test-logger' version '4.0.0'
|
||||||
id 'org.nosphere.apache.rat' version '0.8.0' apply false
|
id 'com.diffplug.spotless' version '6.25.0' apply false
|
||||||
|
id 'org.nosphere.apache.rat' version '0.8.1' apply false
|
||||||
id 'com.github.hierynomus.license' version '0.16.1' apply false
|
id 'com.github.hierynomus.license' version '0.16.1' apply false
|
||||||
id 'com.github.jk1.dependency-license-report' version '2.5' apply false
|
id 'com.github.jk1.dependency-license-report' version '2.5' apply false
|
||||||
id 'org.zeroturnaround.gradle.jrebel' version '1.1.12' apply false
|
id 'org.zeroturnaround.gradle.jrebel' version '1.2.0' apply false
|
||||||
id 'org.springframework.boot' version '3.1.1' apply false
|
id 'org.springframework.boot' version '3.2.6' apply false
|
||||||
id 'net.ltgt.errorprone' version '3.1.0' apply false
|
id 'net.ltgt.errorprone' version '3.1.0' apply false
|
||||||
id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.2.11' apply false
|
id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.2.19' apply false
|
||||||
id 'com.gorylenko.gradle-git-properties' version '2.4.1' apply false
|
id 'com.gorylenko.gradle-git-properties' version '2.4.1' apply false
|
||||||
id 'org.asciidoctor.jvm.convert' version '3.3.2' apply false
|
id 'org.asciidoctor.jvm.convert' version '3.3.2' apply false
|
||||||
id 'org.asciidoctor.jvm.pdf' version '3.3.2' apply false
|
id 'org.asciidoctor.jvm.pdf' version '3.3.2' apply false
|
||||||
id 'org.asciidoctor.jvm.epub' version '3.3.2' apply false
|
id 'org.asciidoctor.jvm.epub' version '3.3.2' apply false
|
||||||
id 'org.asciidoctor.jvm.revealjs' version '3.3.2' apply false
|
// id 'org.asciidoctor.jvm.revealjs' version '3.3.2' apply false
|
||||||
id 'org.asciidoctor.jvm.gems' version '3.3.2' apply false
|
// id 'org.asciidoctor.jvm.gems' version '3.3.2' apply false
|
||||||
id 'org.asciidoctor.kindlegen.base' version '3.2.0' apply false
|
id 'org.asciidoctor.kindlegen.base' version '3.2.0' apply false
|
||||||
id 'com.google.cloud.tools.jib' version '3.3.2' apply false
|
id 'com.google.cloud.tools.jib' version '3.4.2' apply false
|
||||||
id 'fr.brouillard.oss.gradle.jgitver' version '0.10.0-rc03'
|
id 'org.sonarqube' version '4.4.1.3373'
|
||||||
id 'org.sonarqube' version '4.2.1.3168'
|
id 'com.github.andygoossens.modernizer' version '1.9.0' apply false
|
||||||
id 'com.github.andygoossens.modernizer' version '1.8.0' apply false
|
// TODO: upgrade to 6.0.4
|
||||||
id 'com.github.spotbugs' version '5.0.14' apply false
|
id 'com.github.spotbugs' version '5.2.5' apply false
|
||||||
id 'se.thinkcode.cucumber-runner' version '0.0.11' apply false
|
id 'se.thinkcode.cucumber-runner' version '0.0.11' apply false
|
||||||
id "com.github.davidmc24.gradle.plugin.avro-base" version "1.7.1" apply false
|
id "com.github.davidmc24.gradle.plugin.avro-base" version "1.9.1" apply false
|
||||||
|
id 'org.openapi.generator' version '7.2.0' apply false
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.release.gradle"
|
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.release.gradle"
|
||||||
@@ -97,17 +121,32 @@ description = '''\
|
|||||||
Run as:
|
Run as:
|
||||||
gradle clean bootRun'''
|
gradle clean bootRun'''
|
||||||
|
|
||||||
ext['groovy.version'] = '4.0.6'
|
version = '0.0.0-SNAPSHOT'
|
||||||
|
|
||||||
|
gitVersioning.apply {
|
||||||
|
refs {
|
||||||
|
considerTagsOnBranches = true
|
||||||
|
describeTagPattern = '.*(\\d+\\.\\d+\\.\\d+).*'
|
||||||
|
describeTagFirstParent = false
|
||||||
|
|
||||||
|
branch("release\\/\\d+\\.\\d+\\.\\d+") {
|
||||||
|
version = '${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
|
||||||
|
}
|
||||||
|
branch("maintenance\\/\\d+\\.\\d+") {
|
||||||
|
version = '${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rev {
|
||||||
|
version = '${describe.tag.version.major}.${describe.tag.version.minor.next}.${describe.tag.version.patch}-SNAPSHOT'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ext['groovy.version'] = '4.0.17'
|
||||||
ext['swaggerFile'] = "$rootDir/fineract-provider/build/classes/java/main/static/fineract.json".toString()
|
ext['swaggerFile'] = "$rootDir/fineract-provider/build/classes/java/main/static/fineract.json".toString()
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
group = 'org.apache.fineract'
|
group = 'org.apache.fineract'
|
||||||
|
|
||||||
jgitver {
|
|
||||||
strategy 'PATTERN'
|
|
||||||
versionPattern ( project.hasProperty('fineract.release.version') ? '${v}' : '${M}.${m}.${p}-${meta.GIT_SHA1_8}' )
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
@@ -126,7 +165,7 @@ allprojects {
|
|||||||
spotless {
|
spotless {
|
||||||
format 'misc', {
|
format 'misc', {
|
||||||
target '**/*.md', '**/*.properties', '**/.gitignore', '**/.openapi-generator-ignore', '**/*.yml', '**/*.xml', '**/**.json', '**/*.sql'
|
target '**/*.md', '**/*.properties', '**/.gitignore', '**/.openapi-generator-ignore', '**/*.yml', '**/*.xml', '**/**.json', '**/*.sql'
|
||||||
targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**', '**/.gradle/**', '**/gradlew.bat', '**/licenses/**', '**/banner.txt', '.vscode/**'
|
targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**', '**/.gradle/**', '**/gradlew.bat', '**/licenses/**', '**/banner.txt', '.vscode/**', '.profileconfig.json'
|
||||||
indentWithSpaces(4)
|
indentWithSpaces(4)
|
||||||
endWithNewline()
|
endWithNewline()
|
||||||
trimTrailingWhitespace()
|
trimTrailingWhitespace()
|
||||||
@@ -259,7 +298,8 @@ allprojects {
|
|||||||
".mailmap",
|
".mailmap",
|
||||||
'**/images/diag-*.svg',
|
'**/images/diag-*.svg',
|
||||||
'**/*.avsc',
|
'**/*.avsc',
|
||||||
"**/generated/**/*MapperImpl.java"
|
"**/generated/**/*MapperImpl.java",
|
||||||
|
'**/META-INF/fineract-test.config'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -304,6 +344,15 @@ configure(project.fineractJavaProjects) {
|
|||||||
sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory
|
sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory
|
||||||
sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory
|
sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory
|
||||||
|
|
||||||
|
configurations.named('spotbugs').configure {
|
||||||
|
resolutionStrategy.eachDependency {
|
||||||
|
if (it.requested.group == 'org.ow2.asm') {
|
||||||
|
it.useVersion '9.5'
|
||||||
|
it.because "Asm 9.5 is required for JDK 21 support"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
implementation.setCanBeResolved(true)
|
implementation.setCanBeResolved(true)
|
||||||
api.setCanBeResolved(true)
|
api.setCanBeResolved(true)
|
||||||
@@ -341,9 +390,9 @@ configure(project.fineractJavaProjects) {
|
|||||||
// and during an IntelliJ recompilation, it fails
|
// and during an IntelliJ recompilation, it fails
|
||||||
//"-Werror",
|
//"-Werror",
|
||||||
"-Xmaxwarns",
|
"-Xmaxwarns",
|
||||||
1500,
|
"1500",
|
||||||
"-Xmaxerrs",
|
"-Xmaxerrs",
|
||||||
1500
|
"1500"
|
||||||
]
|
]
|
||||||
// TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
|
// TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
|
||||||
|
|
||||||
@@ -406,7 +455,7 @@ configure(project.fineractJavaProjects) {
|
|||||||
// Configuration for the Checkstyle plugin
|
// Configuration for the Checkstyle plugin
|
||||||
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
|
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
|
||||||
dependencies {
|
dependencies {
|
||||||
checkstyle 'com.puppycrawl.tools:checkstyle:10.12.1'
|
checkstyle 'com.puppycrawl.tools:checkstyle:10.14.2'
|
||||||
checkstyle 'com.github.sevntu-checkstyle:sevntu-checks:1.44.1'
|
checkstyle 'com.github.sevntu-checkstyle:sevntu-checks:1.44.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,7 +477,7 @@ configure(project.fineractJavaProjects) {
|
|||||||
// Configuration for the errorprone plugin
|
// Configuration for the errorprone plugin
|
||||||
// https://github.com/tbroyer/gradle-errorprone-plugin
|
// https://github.com/tbroyer/gradle-errorprone-plugin
|
||||||
dependencies {
|
dependencies {
|
||||||
errorprone "com.google.errorprone:error_prone_core:2.20.0"
|
errorprone "com.google.errorprone:error_prone_core:2.26.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(JavaCompile) {
|
tasks.withType(JavaCompile) {
|
||||||
@@ -554,6 +603,7 @@ configure(project.fineractJavaProjects) {
|
|||||||
'org.mockito:mockito-junit-jupiter',
|
'org.mockito:mockito-junit-jupiter',
|
||||||
'org.junit.jupiter:junit-jupiter-api',
|
'org.junit.jupiter:junit-jupiter-api',
|
||||||
'org.junit.jupiter:junit-jupiter-engine',
|
'org.junit.jupiter:junit-jupiter-engine',
|
||||||
|
'org.junit.jupiter:junit-jupiter-params',
|
||||||
'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
|
'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
|
||||||
'org.bouncycastle:bcpkix-jdk15to18',
|
'org.bouncycastle:bcpkix-jdk15to18',
|
||||||
'org.bouncycastle:bcprov-jdk15to18',
|
'org.bouncycastle:bcprov-jdk15to18',
|
||||||
@@ -582,7 +632,8 @@ configure(project.fineractJavaProjects) {
|
|||||||
|
|
||||||
// To generate an HTML report instead of XML
|
// To generate an HTML report instead of XML
|
||||||
spotbugs {
|
spotbugs {
|
||||||
reportLevel = 'high'
|
// reportLevel = 'high'
|
||||||
|
// reportLevel = com.github.spotbugs.snom.Confidence.DEFAULT
|
||||||
showProgress = false
|
showProgress = false
|
||||||
excludeFilter = file("$rootDir/config/spotbugs/exclude.xml")
|
excludeFilter = file("$rootDir/config/spotbugs/exclude.xml")
|
||||||
}
|
}
|
||||||
@@ -661,10 +712,10 @@ configure(project.fineractCustomProjects) {
|
|||||||
'com.google.truth.extensions:truth-java8-extension',
|
'com.google.truth.extensions:truth-java8-extension',
|
||||||
'io.github.classgraph:classgraph',
|
'io.github.classgraph:classgraph',
|
||||||
'io.cucumber:cucumber-core',
|
'io.cucumber:cucumber-core',
|
||||||
'io.cucumber:cucumber-java',
|
'io.cucumber:cucumber-java:7.16.1',
|
||||||
'io.cucumber:cucumber-java8',
|
'io.cucumber:cucumber-java8:7.16.1',
|
||||||
'io.cucumber:cucumber-junit-platform-engine',
|
'io.cucumber:cucumber-junit-platform-engine:7.16.1',
|
||||||
'io.cucumber:cucumber-spring',
|
'io.cucumber:cucumber-spring:7.16.1',
|
||||||
)
|
)
|
||||||
|
|
||||||
testCompileOnly('org.projectlombok:lombok')
|
testCompileOnly('org.projectlombok:lombok')
|
||||||
@@ -677,7 +728,10 @@ configure(project.fineractCustomProjects) {
|
|||||||
|
|
||||||
configure(project.fineractPublishProjects) {
|
configure(project.fineractPublishProjects) {
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
apply plugin: 'signing'
|
|
||||||
|
if (!project.hasProperty('noSign')) {
|
||||||
|
apply plugin: 'signing'
|
||||||
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
@@ -731,8 +785,10 @@ configure(project.fineractPublishProjects) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
signing {
|
if (!project.hasProperty('noSign')) {
|
||||||
sign publishing.publications.mavenJava
|
signing {
|
||||||
|
sign publishing.publications.mavenJava
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
import static org.slf4j.LoggerFactory.*
|
import static org.slf4j.LoggerFactory.*
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'io.spring.dependency-management' version '1.1.0'
|
id 'io.spring.dependency-management' version '1.1.4'
|
||||||
id 'groovy'
|
id 'groovy'
|
||||||
id 'java-gradle-plugin'
|
id 'java-gradle-plugin'
|
||||||
id 'groovy-gradle-plugin'
|
id 'groovy-gradle-plugin'
|
||||||
@@ -58,4 +58,5 @@ dependencies {
|
|||||||
implementation 'com.squareup.retrofit2:retrofit'
|
implementation 'com.squareup.retrofit2:retrofit'
|
||||||
implementation 'com.squareup.retrofit2:converter-jackson'
|
implementation 'com.squareup.retrofit2:converter-jackson'
|
||||||
implementation 'com.fasterxml.jackson.core:jackson-databind'
|
implementation 'com.fasterxml.jackson.core:jackson-databind'
|
||||||
|
implementation 'com.squareup.okhttp3:okhttp'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,15 +22,21 @@ apply plugin: 'io.spring.dependency-management'
|
|||||||
// https://github.com/spring-gradle-plugins/dependency-management-plugin
|
// https://github.com/spring-gradle-plugins/dependency-management-plugin
|
||||||
dependencyManagement {
|
dependencyManagement {
|
||||||
imports {
|
imports {
|
||||||
mavenBom 'org.springframework:spring-framework-bom:6.0.10'
|
mavenBom 'com.squareup.okhttp3:okhttp-bom:4.12.0'
|
||||||
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.1.1'
|
mavenBom 'org.slf4j:slf4j-bom:2.0.12'
|
||||||
mavenBom 'org.jetbrains.kotlin:kotlin-bom:1.8.22'
|
mavenBom 'io.micrometer:micrometer-bom:1.12.2'
|
||||||
mavenBom 'org.junit:junit-bom:5.9.3'
|
mavenBom 'org.springframework:spring-framework-bom:6.1.3'
|
||||||
mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2'
|
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.2.6'
|
||||||
mavenBom 'io.cucumber:cucumber-bom:7.12.1'
|
mavenBom 'io.awspring.cloud:spring-cloud-aws-dependencies:3.1.0'
|
||||||
mavenBom 'io.netty:netty-bom:4.1.94.Final'
|
mavenBom 'io.opentelemetry:opentelemetry-bom:1.34.1'
|
||||||
mavenBom 'org.mockito:mockito-bom:5.4.0'
|
mavenBom 'org.jetbrains.kotlin:kotlin-bom:1.9.24'
|
||||||
mavenBom 'software.amazon.awssdk:bom:2.20.97'
|
mavenBom 'org.junit:junit-bom:5.10.2'
|
||||||
|
mavenBom 'com.fasterxml.jackson:jackson-bom:2.16.1'
|
||||||
|
mavenBom 'io.cucumber:cucumber-bom:7.15.0'
|
||||||
|
mavenBom 'io.netty:netty-bom:4.1.110.Final'
|
||||||
|
mavenBom 'org.mockito:mockito-bom:5.10.0'
|
||||||
|
mavenBom 'software.amazon.awssdk:bom:2.23.18'
|
||||||
|
mavenBom 'io.github.resilience4j:resilience4j-bom:2.2.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -38,42 +44,40 @@ dependencyManagement {
|
|||||||
// We do not use :+ to get the latest available version available on Maven Central, as that could suddenly break things.
|
// We do not use :+ to get the latest available version available on Maven Central, as that could suddenly break things.
|
||||||
// We use the Renovate Bot to automatically propose Pull Requests (PRs) when upgrades for all of these versions are available.
|
// We use the Renovate Bot to automatically propose Pull Requests (PRs) when upgrades for all of these versions are available.
|
||||||
|
|
||||||
dependency 'org.slf4j:slf4j-api:2.0.7'
|
dependency 'ch.qos.logback:logback-core:1.5.3'
|
||||||
dependency 'org.slf4j:slf4j-simple:2.0.7'
|
dependency 'ch.qos.logback:logback-classic:1.5.3'
|
||||||
dependency 'org.slf4j:jcl-over-slf4j:2.0.7'
|
|
||||||
dependency 'org.slf4j:jul-to-slf4j:2.0.7'
|
|
||||||
dependency 'org.slf4j:log4j-over-slf4j:2.0.7'
|
|
||||||
dependency 'ch.qos.logback:logback-core:1.4.8'
|
|
||||||
dependency 'ch.qos.logback:logback-classic:1.4.8'
|
|
||||||
dependency 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
|
dependency 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
|
||||||
dependency 'ch.qos.logback.contrib:logback-jackson:0.1.5'
|
dependency 'ch.qos.logback.contrib:logback-jackson:0.1.5'
|
||||||
dependency 'org.codehaus.janino:janino:3.1.9'
|
dependency 'org.codehaus.janino:janino:3.1.11'
|
||||||
|
|
||||||
|
|
||||||
dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.0'
|
dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.0'
|
||||||
dependency 'com.google.guava:guava:32.0.0-jre'
|
dependency 'com.google.guava:guava:32.0.0-jre'
|
||||||
dependency 'com.google.code.gson:gson:2.10.1'
|
dependency 'com.google.code.gson:gson:2.10.1'
|
||||||
dependency 'com.google.truth:truth:1.1.5'
|
dependency 'com.google.truth:truth:1.4.0'
|
||||||
dependency 'com.google.truth.extensions:truth-java8-extension:1.1.5'
|
dependency 'com.google.truth.extensions:truth-java8-extension:1.4.0'
|
||||||
dependency 'com.google.googlejavaformat:google-java-format:1.17.0'
|
dependency 'com.google.googlejavaformat:google-java-format:1.19.2'
|
||||||
dependency ('org.apache.commons:commons-email:1.5') {
|
dependency 'org.apache.commons:commons-collections4:4.4'
|
||||||
|
dependency ('software.amazon.msk:aws-msk-iam-auth:2.0.3') {
|
||||||
|
exclude 'commons-logging:commons-logging:'
|
||||||
|
}
|
||||||
|
dependency ('org.apache.commons:commons-email:1.6.0') {
|
||||||
exclude 'com.sun.mail:javax.mail'
|
exclude 'com.sun.mail:javax.mail'
|
||||||
exclude 'javax.activation:activation'
|
exclude 'javax.activation:activation'
|
||||||
}
|
}
|
||||||
dependency 'commons-io:commons-io:2.13.0'
|
dependency 'commons-io:commons-io:2.15.1'
|
||||||
dependency 'com.github.librepdf:openpdf:1.3.30'
|
dependency 'com.github.librepdf:openpdf:2.0.0'
|
||||||
dependency ('org.mnode.ical4j:ical4j:3.2.11') {
|
dependency ('org.mnode.ical4j:ical4j:3.2.14') {
|
||||||
exclude 'com.sun.mail:javax.mail'
|
exclude 'com.sun.mail:javax.mail'
|
||||||
exclude 'org.codehaus.groovy:groovy'
|
exclude 'org.codehaus.groovy:groovy'
|
||||||
}
|
}
|
||||||
dependency 'org.apache.commons:commons-csv:1.10.0'
|
dependency 'org.apache.commons:commons-csv:1.10.0'
|
||||||
dependency 'org.quartz-scheduler:quartz:2.3.2'
|
dependency 'org.quartz-scheduler:quartz:2.3.2'
|
||||||
dependency 'software.amazon.awssdk:bom:2.20.97'
|
|
||||||
dependency 'org.ehcache:ehcache:3.10.8'
|
dependency 'org.ehcache:ehcache:3.10.8'
|
||||||
dependency 'com.github.spullara.mustache.java:compiler:0.9.10'
|
dependency 'com.github.spullara.mustache.java:compiler:0.9.11'
|
||||||
dependency 'com.jayway.jsonpath:json-path:2.8.0'
|
dependency 'com.jayway.jsonpath:json-path:2.9.0'
|
||||||
dependency 'org.apache.tika:tika-core:2.8.0'
|
dependency 'org.apache.tika:tika-core:2.9.1'
|
||||||
dependency ('org.apache.tika:tika-parser-microsoft-module:2.8.0') {
|
dependency ('org.apache.tika:tika-parser-microsoft-module:2.9.2') {
|
||||||
exclude 'org.bouncycastle:bcprov-jdk15on'
|
exclude 'org.bouncycastle:bcprov-jdk15on'
|
||||||
exclude 'org.bouncycastle:bcmail-jdk15on'
|
exclude 'org.bouncycastle:bcmail-jdk15on'
|
||||||
exclude 'org.bouncycastle:bcprov-jdk18on'
|
exclude 'org.bouncycastle:bcprov-jdk18on'
|
||||||
@@ -82,9 +86,7 @@ dependencyManagement {
|
|||||||
exclude 'org.apache.logging.log4j:log4j-api'
|
exclude 'org.apache.logging.log4j:log4j-api'
|
||||||
exclude 'org.slf4j:slf4j-api'
|
exclude 'org.slf4j:slf4j-api'
|
||||||
exclude 'commons-io:commons-io'
|
exclude 'commons-io:commons-io'
|
||||||
exclude 'commons-logging:commons-logging'
|
|
||||||
exclude 'commons-codec:commons-codec'
|
exclude 'commons-codec:commons-codec'
|
||||||
exclude 'org.apache.commons:commons-compress'
|
|
||||||
exclude 'org.apache.commons:commons-lang3'
|
exclude 'org.apache.commons:commons-lang3'
|
||||||
exclude 'org.apache.poi:poi'
|
exclude 'org.apache.poi:poi'
|
||||||
exclude 'org.apache.poi:poi-scratchpad'
|
exclude 'org.apache.poi:poi-scratchpad'
|
||||||
@@ -92,7 +94,7 @@ dependencyManagement {
|
|||||||
exclude 'org.apache.commons:commons-compress'
|
exclude 'org.apache.commons:commons-compress'
|
||||||
exclude 'xml-apis:xml-apis'
|
exclude 'xml-apis:xml-apis'
|
||||||
}
|
}
|
||||||
dependency ('org.apache.tika:tika-parser-miscoffice-module:2.8.0') {
|
dependency ('org.apache.tika:tika-parser-miscoffice-module:2.9.2') {
|
||||||
exclude 'org.bouncycastle:bcprov-jdk15on'
|
exclude 'org.bouncycastle:bcprov-jdk15on'
|
||||||
exclude 'org.bouncycastle:bcmail-jdk15on'
|
exclude 'org.bouncycastle:bcmail-jdk15on'
|
||||||
exclude 'org.bouncycastle:bcprov-jdk18on'
|
exclude 'org.bouncycastle:bcprov-jdk18on'
|
||||||
@@ -102,7 +104,6 @@ dependencyManagement {
|
|||||||
exclude 'org.slf4j:slf4j-api'
|
exclude 'org.slf4j:slf4j-api'
|
||||||
exclude 'commons-io:commons-io'
|
exclude 'commons-io:commons-io'
|
||||||
exclude 'commons-codec:commons-codec'
|
exclude 'commons-codec:commons-codec'
|
||||||
exclude 'org.apache.commons:commons-compress'
|
|
||||||
exclude 'org.apache.commons:commons-lang3'
|
exclude 'org.apache.commons:commons-lang3'
|
||||||
exclude 'org.apache.poi:poi'
|
exclude 'org.apache.poi:poi'
|
||||||
exclude 'org.apache.poi:poi-scratchpad'
|
exclude 'org.apache.poi:poi-scratchpad'
|
||||||
@@ -116,19 +117,20 @@ dependencyManagement {
|
|||||||
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
|
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
|
||||||
dependency 'jakarta.jms:jakarta.jms-api:3.1.0'
|
dependency 'jakarta.jms:jakarta.jms-api:3.1.0'
|
||||||
dependency 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
|
dependency 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
|
||||||
dependency 'org.glassfish.jersey.media:jersey-media-multipart:3.1.2'
|
dependency 'org.glassfish.jersey.media:jersey-media-multipart:3.1.5'
|
||||||
dependency 'org.glassfish.jaxb:jaxb-runtime:2.3.6' // Swagger needs exactly this version
|
dependency 'org.glassfish.jaxb:jaxb-runtime:2.3.6' // Swagger needs exactly this version
|
||||||
dependency 'org.apache.bval:org.apache.bval.bundle:2.0.6'
|
dependency 'org.apache.bval:org.apache.bval.bundle:3.0.0'
|
||||||
dependency 'joda-time:joda-time:2.12.5'
|
dependency 'joda-time:joda-time:2.12.7'
|
||||||
|
|
||||||
dependency 'io.github.classgraph:classgraph:4.8.160'
|
dependency 'io.github.classgraph:classgraph:4.8.168'
|
||||||
dependency 'org.awaitility:awaitility:4.2.0'
|
dependency 'org.awaitility:awaitility:4.2.1'
|
||||||
dependency 'com.github.spotbugs:spotbugs-annotations:4.7.3'
|
// TODO: upgrade to 4.8.3
|
||||||
|
dependency 'com.github.spotbugs:spotbugs-annotations:4.8.3'
|
||||||
dependency 'javax.cache:cache-api:1.1.1'
|
dependency 'javax.cache:cache-api:1.1.1'
|
||||||
dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0'
|
dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0'
|
||||||
dependency 'org.webjars:webjars-locator-core:0.53'
|
dependency 'org.webjars:webjars-locator-core:0.55'
|
||||||
dependency 'com.icegreen:greenmail-junit5:2.0.0'
|
dependency 'com.icegreen:greenmail-junit5:2.0.1'
|
||||||
dependency 'com.intuit.karate:karate-junit5:1.4.0'
|
dependency 'com.intuit.karate:karate-junit5:1.4.1'
|
||||||
|
|
||||||
// fineract client dependencies
|
// fineract client dependencies
|
||||||
dependency "com.squareup.retrofit2:retrofit:2.9.0"
|
dependency "com.squareup.retrofit2:retrofit:2.9.0"
|
||||||
@@ -145,64 +147,59 @@ dependencyManagement {
|
|||||||
dependency "com.squareup.retrofit2:converter-scalars:2.9.0"
|
dependency "com.squareup.retrofit2:converter-scalars:2.9.0"
|
||||||
dependency "com.squareup.retrofit2:converter-gson:2.9.0"
|
dependency "com.squareup.retrofit2:converter-gson:2.9.0"
|
||||||
dependency "com.squareup.retrofit2:converter-protobuf:2.9.0"
|
dependency "com.squareup.retrofit2:converter-protobuf:2.9.0"
|
||||||
|
dependency 'io.reactivex.rxjava2:rxjava:2.2.21'
|
||||||
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.common:1.0.1"
|
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.common:1.0.1"
|
||||||
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.1"
|
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.1"
|
||||||
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.httpclient4:1.0.1"
|
dependency "org.apache.oltu.oauth2:org.apache.oltu.oauth2.httpclient4:1.0.1"
|
||||||
dependency "com.squareup.okhttp3:okhttp:4.11.0"
|
dependency "io.gsonfire:gson-fire:1.9.0"
|
||||||
dependency "com.squareup.okhttp3:okcurl:4.11.0"
|
|
||||||
dependency "com.squareup.okhttp3:logging-interceptor:4.11.0"
|
|
||||||
dependency "com.squareup.okhttp3:okhttp-apache:4.9.3"
|
|
||||||
dependency "com.squareup.okhttp3:okhttp-android-support:4.9.3"
|
|
||||||
dependency "com.squareup.okhttp3:okhttp-urlconnection:4.11.0"
|
|
||||||
dependency "com.squareup.okhttp3:okhttp-sse:4.11.0"
|
|
||||||
dependency "io.gsonfire:gson-fire:1.8.5"
|
|
||||||
dependency "com.google.code.findbugs:jsr305:3.0.2"
|
dependency "com.google.code.findbugs:jsr305:3.0.2"
|
||||||
dependency "commons-codec:commons-codec:1.16.0"
|
dependency "commons-codec:commons-codec:1.16.0"
|
||||||
dependency "org.projectlombok:lombok:1.18.28"
|
dependency "org.projectlombok:lombok:1.18.32"
|
||||||
|
|
||||||
dependency 'org.bouncycastle:bcpkix-jdk15to18:1.75'
|
dependency 'org.bouncycastle:bcpkix-jdk15to18:1.77'
|
||||||
dependency 'org.bouncycastle:bcprov-jdk15to18:1.75'
|
dependency 'org.bouncycastle:bcprov-jdk15to18:1.77'
|
||||||
dependency 'org.bouncycastle:bcprov-jdk15on:1.70'
|
dependency 'org.bouncycastle:bcprov-jdk15on:1.70'
|
||||||
dependency 'org.bouncycastle:bcpg-jdk15on:1.70'
|
dependency 'org.bouncycastle:bcpg-jdk15on:1.70'
|
||||||
|
|
||||||
dependency 'org.eclipse.jgit:org.eclipse.jgit:6.6.0.202305301015-r'
|
dependency 'org.eclipse.jgit:org.eclipse.jgit:6.8.0.202311291450-r'
|
||||||
dependency 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:6.6.0.202305301015-r'
|
dependency 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:6.8.0.202311291450-r'
|
||||||
|
|
||||||
dependency 'org.tmatesoft.svnkit:svnkit:1.10.11'
|
dependency 'org.tmatesoft.svnkit:svnkit:1.10.11'
|
||||||
dependency 'com.vdurmont:semver4j:3.1.0'
|
dependency 'com.vdurmont:semver4j:3.1.0'
|
||||||
dependency 'org.beryx:text-io:3.4.1'
|
dependency 'org.beryx:text-io:3.4.1'
|
||||||
|
|
||||||
dependency ('org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0') {
|
dependency ('org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0') {
|
||||||
exclude 'io.swagger.core.v3:swagger-core'
|
exclude 'io.swagger.core.v3:swagger-core'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.12.0'
|
dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.15.2'
|
||||||
|
|
||||||
dependency ('org.apache.activemq:activemq-client-jakarta:5.18.2') {
|
dependency ('org.apache.activemq:activemq-client:6.0.1') {
|
||||||
exclude 'javax.annotation:javax.annotation-api'
|
exclude 'javax.annotation:javax.annotation-api'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency 'io.swagger.core.v3:swagger-annotations-jakarta:2.2.11'
|
dependency 'io.swagger.core.v3:swagger-annotations-jakarta:2.2.22'
|
||||||
dependency ('io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.11') {
|
dependency ('io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22') {
|
||||||
exclude 'jakarta.activation:jakarta.activation-api'
|
exclude 'jakarta.activation:jakarta.activation-api'
|
||||||
}
|
}
|
||||||
dependency ('io.swagger.core.v3:swagger-core-jakarta:2.2.11') {
|
dependency ('io.swagger.core.v3:swagger-core-jakarta:2.2.22') {
|
||||||
exclude 'jakarta.activation:jakarta.activation-api'
|
exclude 'jakarta.activation:jakarta.activation-api'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency "jakarta.annotation:jakarta.annotation-api:2.1.1"
|
dependency 'jakarta.annotation:jakarta.annotation-api:2.1.1'
|
||||||
dependency 'jakarta.activation:jakarta.activation-api:2.1.2'
|
dependency 'jakarta.activation:jakarta.activation-api:2.1.2'
|
||||||
dependency ('com.sun.mail:jakarta.mail:2.0.1') {
|
dependency ('com.sun.mail:jakarta.mail:2.0.1') {
|
||||||
// Spring needs this version
|
// Spring needs this version
|
||||||
exclude 'com.sun.activation:jakarta.activation'
|
exclude 'com.sun.activation:jakarta.activation'
|
||||||
}
|
}
|
||||||
dependency ('jakarta.xml.bind:jakarta.xml.bind-api:4.0.0') {
|
dependency ('jakarta.xml.bind:jakarta.xml.bind-api:4.0.1') {
|
||||||
exclude 'jakarta.activation:jakarta.activation-api'
|
exclude 'jakarta.activation:jakarta.activation-api'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency ('org.liquibase:liquibase-core:4.23.0') {
|
dependency ('org.liquibase:liquibase-core:4.25.1') {
|
||||||
exclude 'javax.xml.bind:jaxb-api'
|
exclude 'javax.xml.bind:jaxb-api'
|
||||||
}
|
}
|
||||||
|
dependency 'org.liquibase.ext:liquibase-postgresql:4.25.1.1'
|
||||||
|
|
||||||
dependency ('org.dom4j:dom4j:2.1.4') {
|
dependency ('org.dom4j:dom4j:2.1.4') {
|
||||||
exclude 'relaxngDatatype:relaxngDatatype' // already in com.sun.xml.bind:jaxb-osgi:2.3.0.1
|
exclude 'relaxngDatatype:relaxngDatatype' // already in com.sun.xml.bind:jaxb-osgi:2.3.0.1
|
||||||
@@ -211,41 +208,46 @@ dependencyManagement {
|
|||||||
exclude 'pull-parser:pull-parser'
|
exclude 'pull-parser:pull-parser'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency 'org.owasp.esapi:esapi:2.5.2.0'
|
dependency 'org.owasp.esapi:esapi:2.5.3.1'
|
||||||
dependency 'org.awaitility:awaitility:4.2.0'
|
dependency 'org.awaitility:awaitility:4.2.1'
|
||||||
|
|
||||||
dependencySet(group: 'org.apache.poi', version: '5.2.3') {
|
dependencySet(group: 'org.apache.poi', version: '5.2.5') {
|
||||||
entry 'poi'
|
entry 'poi'
|
||||||
entry 'poi-ooxml'
|
entry 'poi-ooxml'
|
||||||
entry 'poi-ooxml-schemas'
|
entry 'poi-ooxml-schemas'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencySet(group: 'io.rest-assured', version: '5.3.1') {
|
dependencySet(group: 'io.rest-assured', version: '5.4.0') {
|
||||||
entry 'rest-assured'
|
entry 'rest-assured'
|
||||||
entry 'json-path'
|
entry 'json-path'
|
||||||
entry 'xml-path'
|
entry 'xml-path'
|
||||||
}
|
}
|
||||||
dependency 'org.apache.groovy:groovy-xml:4.0.13'
|
dependency 'org.apache.groovy:groovy-xml:4.0.18'
|
||||||
dependency 'org.apache.groovy:groovy-json:4.0.13'
|
dependency 'org.apache.groovy:groovy-json:4.0.18'
|
||||||
|
|
||||||
dependency 'org.mapstruct:mapstruct:1.5.5.Final'
|
dependency 'org.mapstruct:mapstruct:1.5.5.Final'
|
||||||
dependency 'org.mapstruct:mapstruct-processor:1.5.5.Final'
|
dependency 'org.mapstruct:mapstruct-processor:1.5.5.Final'
|
||||||
|
|
||||||
dependency "org.apache.avro:avro:1.11.1"
|
dependency "org.apache.avro:avro:1.11.3"
|
||||||
|
|
||||||
dependency "io.github.resilience4j:resilience4j-spring-boot2:2.0.2"
|
dependency ('org.mariadb.jdbc:mariadb-java-client:3.3.2') {
|
||||||
|
|
||||||
dependency ('org.mariadb.jdbc:mariadb-java-client:3.1.4') {
|
|
||||||
exclude 'org.slf4j:jcl-over-slf4j'
|
exclude 'org.slf4j:jcl-over-slf4j'
|
||||||
exclude 'org.slf4j:slf4j-api'
|
exclude 'org.slf4j:slf4j-api'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency 'org.postgresql:postgresql:42.6.0'
|
dependency 'org.postgresql:postgresql:42.7.3'
|
||||||
|
|
||||||
dependency 'org.assertj:assertj-core:3.24.2'
|
dependency 'org.assertj:assertj-core:3.25.3'
|
||||||
|
|
||||||
dependency 'org.apache.commons:commons-math3:3.6.1'
|
dependency 'org.apache.commons:commons-math3:3.6.1'
|
||||||
|
|
||||||
dependency 'org.mockito:mockito-inline:5.2.0'
|
dependency 'org.mockito:mockito-inline:5.2.0'
|
||||||
|
|
||||||
|
dependency 'com.github.tomakehurst:wiremock-standalone:3.0.1'
|
||||||
|
|
||||||
|
dependency 'io.cucumber:cucumber-java:7.16.1'
|
||||||
|
dependency 'io.cucumber:cucumber-java8:7.16.1'
|
||||||
|
dependency 'io.cucumber:cucumber-junit-platform-engine:7.16.1'
|
||||||
|
dependency 'io.cucumber:cucumber-spring:7.16.1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ class FineractPlugin implements Plugin<Project> {
|
|||||||
this.confluenceService = new ConfluenceService(extension.config.confluence)
|
this.confluenceService = new ConfluenceService(extension.config.confluence)
|
||||||
this.subversionService = new SubversionService(extension.config.subversion)
|
this.subversionService = new SubversionService(extension.config.subversion)
|
||||||
this.emailService = new EmailService(extension.config.smtp)
|
this.emailService = new EmailService(extension.config.smtp)
|
||||||
this.gpgService = new GpgService(extension.config.gpg)
|
|
||||||
this.gitService = new GitService(extension.config.git, extension.config.gpg)
|
this.gitService = new GitService(extension.config.git, extension.config.gpg)
|
||||||
this.context = context(project)
|
this.context = context(project)
|
||||||
}
|
}
|
||||||
@@ -331,7 +330,7 @@ class FineractPlugin implements Plugin<Project> {
|
|||||||
project.tasks.register("fineractReleaseStep7") {
|
project.tasks.register("fineractReleaseStep7") {
|
||||||
doFirst {
|
doFirst {
|
||||||
FineractPluginExtension.FineractPluginStep step = step(extension, "step7")
|
FineractPluginExtension.FineractPluginStep step = step(extension, "step7")
|
||||||
|
gpgService = new GpgService(extension.config.gpg)
|
||||||
gpgService.sign(step.gpg)
|
gpgService.sign(step.gpg)
|
||||||
|
|
||||||
step.gpg.files.findAll {
|
step.gpg.files.findAll {
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ class EmailService {
|
|||||||
if(params.bcc) {
|
if(params.bcc) {
|
||||||
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(params.bcc))
|
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(params.bcc))
|
||||||
}
|
}
|
||||||
msg.setSubject(params.subject)
|
msg.setSubject(params.subject, "UTF-8")
|
||||||
msg.setText(params.message);
|
msg.setText(params.message, "UTF-8");
|
||||||
|
|
||||||
Transport.send(msg);
|
Transport.send(msg);
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import org.apache.fineract.gradle.FineractPluginExtension
|
|||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
|
import java.nio.charset.Charset
|
||||||
|
|
||||||
class TemplateService {
|
class TemplateService {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TemplateService.class)
|
private static final Logger log = LoggerFactory.getLogger(TemplateService.class)
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ class TemplateService {
|
|||||||
TemplateService(FineractPluginExtension.FineractPluginConfigTemplate config) {
|
TemplateService(FineractPluginExtension.FineractPluginConfigTemplate config) {
|
||||||
def dir = new File(config.templateDir);
|
def dir = new File(config.templateDir);
|
||||||
|
|
||||||
this.config = new Configuration(Configuration.VERSION_2_3_31);
|
this.config = new Configuration(Configuration.VERSION_2_3_32);
|
||||||
this.config.setDirectoryForTemplateLoading(dir)
|
this.config.setDirectoryForTemplateLoading(dir)
|
||||||
this.config.setDefaultEncoding("UTF-8");
|
this.config.setDefaultEncoding("UTF-8");
|
||||||
this.config.setLogTemplateExceptions(false);
|
this.config.setLogTemplateExceptions(false);
|
||||||
@@ -58,7 +60,7 @@ class TemplateService {
|
|||||||
Template template = null;
|
Template template = null;
|
||||||
|
|
||||||
if(params.templateFile) {
|
if(params.templateFile) {
|
||||||
template = new Template("template", new FileReader(new File(params.templateFile)), this.config)
|
template = new Template("template", new FileReader(new File(params.templateFile), Charset.forName("UTF-8")), this.config)
|
||||||
}
|
}
|
||||||
if(params.template) {
|
if(params.template) {
|
||||||
template = new Template("template", new StringReader(params.template), this.config)
|
template = new Template("template", new StringReader(params.template), this.config)
|
||||||
@@ -69,7 +71,7 @@ class TemplateService {
|
|||||||
def output = new File(params.outputFile)
|
def output = new File(params.outputFile)
|
||||||
output.createNewFile()
|
output.createNewFile()
|
||||||
|
|
||||||
template.process(data, new FileWriter(output, false))
|
template.process(data, new FileWriter(output, Charset.forName("UTF-8"), false))
|
||||||
} else {
|
} else {
|
||||||
def output = new StringWriter()
|
def output = new StringWriter()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
[default]
|
||||||
|
aws_access_key_id=localstack
|
||||||
|
aws_secret_access_key=localstack
|
||||||
|
region=us-east-1
|
||||||
|
output=json
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
activemq:
|
||||||
|
image: symptoma/activemq:5.18.3
|
||||||
|
ports:
|
||||||
|
- "6161:6161"
|
||||||
|
- "61616:61616"
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
fineract:
|
||||||
|
# user: "${FINERACT_USER}:${FINERACT_GROUP}"
|
||||||
|
image: fineract-custom:latest
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/logback/logback-override.xml:/app/logback-override.xml
|
||||||
|
- ${PWD}/config/docker/aws/etc/credentials:/etc/aws/credentials:ro
|
||||||
|
- ${PWD}/build/fineract/logs:/var/logs/fineract:rw
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "localhost" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
||||||
|
timeout: 1s
|
||||||
|
retries: 60
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
fineract:
|
||||||
|
# user: "${FINERACT_USER}:${FINERACT_GROUP}"
|
||||||
|
image: fineract:latest
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/logback/logback-override.xml:/app/logback-override.xml
|
||||||
|
- ${PWD}/config/docker/aws/etc/credentials:/etc/aws/credentials:ro
|
||||||
|
- ${PWD}/build/fineract/logs:/var/logs/fineract:rw
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "localhost" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
||||||
|
timeout: 1s
|
||||||
|
retries: 60
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
x-logging: &default-logging
|
||||||
|
driver: loki
|
||||||
|
options:
|
||||||
|
loki-url: 'http://localhost:3100/api/prom/push'
|
||||||
|
loki-pipeline-stages: |
|
||||||
|
- multiline:
|
||||||
|
firstline: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}'
|
||||||
|
max_wait_time: 3s
|
||||||
|
- regex:
|
||||||
|
expression: '^(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}.\d{3}) (?P<message>(?s:.*))$$'
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
container_name: mariadb
|
||||||
|
image: mariadb:11.2
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/mysql/conf.d/server_collation.cnf:/etc/mysql/conf.d/server_collation.cnf:ro
|
||||||
|
- ${PWD}/config/docker/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:Z,ro
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ${PWD}/config/docker/env/mysql.env
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized" ]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
x-logging: &default-logging
|
||||||
|
driver: loki
|
||||||
|
options:
|
||||||
|
loki-url: 'http://localhost:3100/api/prom/push'
|
||||||
|
loki-pipeline-stages: |
|
||||||
|
- multiline:
|
||||||
|
firstline: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}'
|
||||||
|
max_wait_time: 3s
|
||||||
|
- regex:
|
||||||
|
expression: '^(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}.\d{3}) (?P<message>(?s:.*))$$'
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
loki:
|
||||||
|
container_name: loki
|
||||||
|
image: grafana/loki:2.9.2
|
||||||
|
command: -config.file=/etc/loki/local-config.yaml
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
container_name: prometheus
|
||||||
|
image: prom/prometheus:v2.47.2
|
||||||
|
command: '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
ports:
|
||||||
|
- "9090:9090"
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/prometheus/etc:/etc/prometheus
|
||||||
|
logging: *default-logging
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
container_name: grafana
|
||||||
|
image: grafana/grafana-oss:10.2.0
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/grafana/datasources:/etc/grafana/provisioning/datasources
|
||||||
|
- ${PWD}/config/docker/grafana/etc/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yaml
|
||||||
|
- ${PWD}/config/docker/grafana/dashboards:/var/lib/grafana/dashboards
|
||||||
|
logging: *default-logging
|
||||||
|
|
||||||
|
tempo:
|
||||||
|
container_name: tempo
|
||||||
|
image: grafana/tempo:2.2.4
|
||||||
|
# command: [ "--target=all", "--storage.trace.backend=local", "--storage.trace.local.path=/tmp/tempo", "--auth.enabled=false" ]
|
||||||
|
command: [ "-config.file=/etc/tempo.yml" ]
|
||||||
|
ports:
|
||||||
|
- "14268:14268" # jaeger ingest
|
||||||
|
- "3200:3200" # tempo
|
||||||
|
- "9095:9095" # tempo grpc
|
||||||
|
- "4317:4317" # otlp grpc
|
||||||
|
- "4318:4318" # otlp http
|
||||||
|
- "9411:9411" # zipkin
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/tempo/etc/tempo.yml:/etc/tempo.yml
|
||||||
|
- /tmp/tempo:/tmp/tempo
|
||||||
|
logging: *default-logging
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgresql:
|
||||||
|
image: postgres:16.1
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/config/docker/postgresql/docker-entrypoint-initdb.d/01-init.sh:/docker-entrypoint-initdb.d/01-init.sh:Z,ro
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ${PWD}/config/docker/env/postgresql.env
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
Vendored
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=true
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL=tcp://activemq:61616
|
||||||
Vendored
+30
@@ -0,0 +1,30 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# TODO: remove AWS_ENDPOINT_URL and use FINERACT_AWS_ENDPOINT
|
||||||
|
AWS_EC2_METADATA_DISABLED=true
|
||||||
|
AWS_ENDPOINT_URL=http://localstack:4666
|
||||||
|
#FINERACT_AWS_ENDPOINT=http://localstack:4666
|
||||||
|
FINERACT_AWS_REGION_STATIC=us-east-1
|
||||||
|
FINERACT_AWS_CREDENTIALS_INSTANCE_PROFILE=false
|
||||||
|
#FINERACT_AWS_CREDENTIALS_ACCESS_KEY=localstack
|
||||||
|
#FINERACT_AWS_CREDENTIALS_SECRET_KEY=localstack
|
||||||
|
FINERACT_AWS_CREDENTIALS_PROFILE_NAME=default
|
||||||
|
FINERACT_AWS_CREDENTIALS_PROFILE_PATH=/etc/aws/credentials
|
||||||
|
FINERACT_AUTOCONFIGURE_EXCLUDE=
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_MANAGEMENT_CLOUDWATCH_ENABLED=true
|
||||||
|
FINERACT_MANAGEMENT_CLOUDWATCH_NAMESPACE=fineract
|
||||||
|
FINERACT_MANAGEMENT_CLOUDWATCH_REGION=us-east-1
|
||||||
|
FINERACT_MANAGEMENT_CLOUDWATCH_STEP=1m
|
||||||
Vendored
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# see here for more details related to JFR: https://access.redhat.com/documentation/en-us/red_hat_build_of_openjdk/8/html/using_jdk_flight_recorder_with_red_hat_build_of_openjdk/configure-jfr-options
|
||||||
|
# JAVA_TOOL_OPTIONS="-Xmx2G -Xms2G -Dlogging.config=/app/logback-override.xml -XX:TieredStopAtLevel=1 -XX:+UseContainerSupport -XX:+UseStringDeduplication -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5000 -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:StartFlightRecording=delay=20s,duration=60s,disk=true,name=fineract,path-to-gc-roots=true,dumponexit=true,filename=/var/logs/fineract/fineract.jfr,settings=profile -Xlog:jfr=info"
|
||||||
|
JAVA_TOOL_OPTIONS="-Xmx2G -Xms2G -Dlogging.config=/app/logback-override.xml -XX:TieredStopAtLevel=1 -XX:+UseContainerSupport -XX:+UseStringDeduplication -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5000 -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -Xlog:jfr=info"
|
||||||
+59
@@ -0,0 +1,59 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# ... following variables are optional; "application.properties" contains reasonable defaults (same as here)
|
||||||
|
FINERACT_USER=1000
|
||||||
|
FINERACT_GROUP=1000
|
||||||
|
FINERACT_HIKARI_MINIMUM_IDLE=3
|
||||||
|
FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
||||||
|
FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
||||||
|
FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
||||||
|
FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
||||||
|
FINERACT_HIKARI_AUTO_COMMIT=true
|
||||||
|
FINERACT_SERVER_SSL_ENABLED=true
|
||||||
|
FINERACT_HIKARI_USERNAME=root
|
||||||
|
FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
||||||
|
FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
||||||
|
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
||||||
|
FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
||||||
|
FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
||||||
|
FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
||||||
|
FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
||||||
|
FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
||||||
|
FINERACT_DEFAULT_TENANTDB_HOSTNAME=db
|
||||||
|
FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
|
FINERACT_DEFAULT_MASTER_PASSWORD=fineract
|
||||||
|
FINERACT_MANAGEMENT_ENDPOINT_WEB_EXPOSURE_INCLUDE=health,info,prometheus
|
||||||
|
FINERACT_MANAGEMENT_METRICS_TAGS_APPLICATION=fineract
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
||||||
|
FINERACT_INSECURE_HTTP_CLIENT=true
|
||||||
|
SPRING_PROFILES_ACTIVE=test,diagnostics
|
||||||
|
OTEL_SERVICE_NAME=fineract
|
||||||
|
JAVA_TOOL_OPTIONS="-Xmx1G -XX:MinRAMPercentage=25 -XX:MaxRAMPercentage=80 -XX:TieredStopAtLevel=1 -XX:+UseContainerSupport -XX:+UseStringDeduplication --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED"
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_NODE_ID=1
|
||||||
|
FINERACT_MODE_BATCH_MANAGER_ENABLED=true
|
||||||
|
FINERACT_MODE_BATCH_WORKER_ENABLED=false
|
||||||
|
LOAN_COB_CHUNK_SIZE=10
|
||||||
|
LOAN_COB_PARTITION_SIZE=10
|
||||||
|
LOAN_COB_POLL_INTERVAL=1000
|
||||||
|
OTEL_SERVICE_NAME=fineract-manager
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# NOTE: env vars prefixed "FINERACT_HIKARI_*" are used to configure the database connection pool
|
||||||
|
FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.mariadb.jdbc.Driver
|
||||||
|
FINERACT_HIKARI_JDBC_URL=jdbc:mariadb://db:3306/fineract_tenants
|
||||||
|
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
||||||
|
FINERACT_DEFAULT_TENANTDB_PORT=3306
|
||||||
|
FINERACT_DEFAULT_TENANTDB_UID=root
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# NOTE: env vars prefixed "FINERACT_HIKARI_*" are used to configure the database connection pool
|
||||||
|
FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
||||||
|
FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://db:5432/fineract_tenants
|
||||||
|
FINERACT_HIKARI_USERNAME=postgres
|
||||||
|
FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
|
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
||||||
|
FINERACT_DEFAULT_TENANTDB_PORT=5432
|
||||||
|
FINERACT_DEFAULT_TENANTDB_UID=postgres
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_NODE_ID=2
|
||||||
|
FINERACT_MODE_BATCH_MANAGER_ENABLED=false
|
||||||
|
FINERACT_MODE_BATCH_WORKER_ENABLED=true
|
||||||
|
OTEL_SERVICE_NAME=fineract-worker
|
||||||
|
FINERACT_LIQUIBASE_ENABLED=false
|
||||||
Vendored
+20
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_NODE_ID=1
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS=2
|
||||||
|
FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384|security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS=2
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
||||||
|
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
||||||
|
FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
||||||
|
FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
||||||
Vendored
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
KAFKA_CFG_NODE_ID=0
|
||||||
|
KAFKA_CFG_PROCESS_ROLES=controller,broker
|
||||||
|
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
|
||||||
|
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
||||||
|
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
|
||||||
|
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
|
||||||
|
ALLOW_PLAINTEXT_LISTENER=yes
|
||||||
|
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
|
||||||
Vendored
+20
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
MYSQL_ROOT_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
Vendored
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_MANAGEMENT_OLTP_ENABLED=true
|
||||||
|
FINERACT_MANAGEMENT_OLTP_METRICS_EXPORT_URL=http://tempo:4318/v1/traces
|
||||||
|
FINERACT_MANAGEMENT_OLTP_METRICS_EXPORT_AGGREGATION_TEMPORALITY=cumulative
|
||||||
Vendored
+25
@@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
POSTGRES_USER=root
|
||||||
|
POSTGRES_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
|
FINERACT_DB_USER=postgres
|
||||||
|
FINERACT_DB_PASS=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||||
|
FINERACT_TENANTS_DB_NAME=fineract_tenants
|
||||||
|
FINERACT_TENANT_DEFAULT_DB_NAME=fineract_default
|
||||||
Vendored
+20
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_MANAGEMENT_PROMETHEUS_ENABLED=true
|
||||||
Vendored
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
FINERACT_MANAGEMENT_TRACIING_ENABLED=true
|
||||||
|
FINERACT_MANAGEMENT_METRICS_DISTRIBUTION_HTTP_SERVER_REQUESTS=true
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,95 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
# list of datasources that should be deleted from the database
|
||||||
|
deleteDatasources:
|
||||||
|
- name: Prometheus
|
||||||
|
orgId: 1
|
||||||
|
|
||||||
|
# list of datasources to insert/update depending on
|
||||||
|
# what's available in the database
|
||||||
|
datasources:
|
||||||
|
# <string, required> name of the datasource. Required
|
||||||
|
- uid: prometheus
|
||||||
|
orgId: 1
|
||||||
|
name: Prometheus
|
||||||
|
type: prometheus
|
||||||
|
typeName: Prometheus
|
||||||
|
access: proxy
|
||||||
|
url: http://prometheus:9090
|
||||||
|
password: ''
|
||||||
|
user: ''
|
||||||
|
database: ''
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: true
|
||||||
|
jsonData:
|
||||||
|
exemplarTraceIdDestinations:
|
||||||
|
- datasourceUid: tempo
|
||||||
|
name: trace_id
|
||||||
|
httpMethod: POST
|
||||||
|
readOnly: false
|
||||||
|
editable: true
|
||||||
|
- uid: tempo
|
||||||
|
orgId: 1
|
||||||
|
name: Tempo
|
||||||
|
type: tempo
|
||||||
|
typeName: Tempo
|
||||||
|
access: proxy
|
||||||
|
url: http://tempo:3200
|
||||||
|
password: ''
|
||||||
|
user: ''
|
||||||
|
database: ''
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
jsonData:
|
||||||
|
nodeGraph:
|
||||||
|
enabled: true
|
||||||
|
search:
|
||||||
|
hide: false
|
||||||
|
tracesToLogs:
|
||||||
|
datasourceUid: loki
|
||||||
|
filterBySpanID: false
|
||||||
|
filterByTraceID: true
|
||||||
|
mapTagNamesEnabled: false
|
||||||
|
tags:
|
||||||
|
- compose_service
|
||||||
|
readOnly: false
|
||||||
|
editable: true
|
||||||
|
- uid: loki
|
||||||
|
orgId: 1
|
||||||
|
name: Loki
|
||||||
|
type: loki
|
||||||
|
typeName: Loki
|
||||||
|
access: proxy
|
||||||
|
url: http://loki:3100
|
||||||
|
password: ''
|
||||||
|
user: ''
|
||||||
|
database: ''
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: false
|
||||||
|
jsonData:
|
||||||
|
derivedFields:
|
||||||
|
- datasourceUid: tempo
|
||||||
|
matcherRegex: (?:trace_id)=(\w+)
|
||||||
|
name: TraceID
|
||||||
|
url: $${__value.raw}
|
||||||
|
readOnly: false
|
||||||
|
editable: true
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
apiVersion: 1
|
||||||
|
providers:
|
||||||
|
- name: 'Dashboards'
|
||||||
|
orgId: 1
|
||||||
|
folder: ''
|
||||||
|
type: 'file'
|
||||||
|
disableDeletion: true
|
||||||
|
editable: true
|
||||||
|
options:
|
||||||
|
path: '/var/lib/grafana/dashboards'
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<configuration>
|
||||||
|
<!--
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||||
|
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
|
||||||
|
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
|
||||||
|
-->
|
||||||
|
|
||||||
|
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
|
||||||
|
<resetJUL>false</resetJUL>
|
||||||
|
</contextListener>
|
||||||
|
|
||||||
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<withJansi>false</withJansi>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%green(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %cyan(%logger{36}) - %msg%n</pattern>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>/var/logs/fineract/fineract.log</file>
|
||||||
|
<append>true</append>
|
||||||
|
<prudent>true</prudent>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
|
<fileNamePattern>/var/logs/fineract/fineract.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||||
|
<maxHistory>2</maxHistory>
|
||||||
|
<totalSizeCap>100MB</totalSizeCap>
|
||||||
|
</rollingPolicy>
|
||||||
|
<encoder>
|
||||||
|
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||||
|
<charset>UTF-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<logger name="org.springframework.transaction" level="INFO" />
|
||||||
|
|
||||||
|
<root level="INFO">
|
||||||
|
<appender-ref ref="STDOUT" />
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
global:
|
||||||
|
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
|
||||||
|
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
|
||||||
|
# scrape_timeout is set to the global default (10s).
|
||||||
|
|
||||||
|
# Alertmanager configuration
|
||||||
|
alerting:
|
||||||
|
alertmanagers:
|
||||||
|
- static_configs:
|
||||||
|
- targets:
|
||||||
|
# - alertmanager:9093
|
||||||
|
|
||||||
|
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
||||||
|
rule_files:
|
||||||
|
# - "first_rules.yml"
|
||||||
|
# - "second_rules.yml"
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape:
|
||||||
|
# Here it's Prometheus itself.
|
||||||
|
scrape_configs:
|
||||||
|
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
||||||
|
- job_name: "prometheus"
|
||||||
|
|
||||||
|
# metrics_path defaults to '/metrics'
|
||||||
|
# scheme defaults to 'http'.
|
||||||
|
|
||||||
|
static_configs:
|
||||||
|
- targets: ["localhost:9090"]
|
||||||
|
|
||||||
|
- job_name: "fineract-server"
|
||||||
|
|
||||||
|
# Override the global default and scrape targets from this job every 5 seconds.
|
||||||
|
scrape_interval: 5s
|
||||||
|
metrics_path: "/actuator/prometheus"
|
||||||
|
scheme: "https"
|
||||||
|
|
||||||
|
static_configs:
|
||||||
|
- targets: ["fineract-server:8443"]
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
server:
|
||||||
|
http_listen_port: 3200
|
||||||
|
|
||||||
|
query_frontend:
|
||||||
|
search:
|
||||||
|
duration_slo: 5s
|
||||||
|
throughput_bytes_slo: 1.073741824e+09
|
||||||
|
trace_by_id:
|
||||||
|
duration_slo: 5s
|
||||||
|
|
||||||
|
distributor:
|
||||||
|
receivers: # this configuration will listen on all ports and protocols that tempo is capable of.
|
||||||
|
jaeger: # the receives all come from the OpenTelemetry collector. more configuration information can
|
||||||
|
protocols: # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
|
||||||
|
thrift_http: #
|
||||||
|
grpc: # for a production deployment you should only enable the receivers you need!
|
||||||
|
thrift_binary:
|
||||||
|
thrift_compact:
|
||||||
|
zipkin:
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
http:
|
||||||
|
grpc:
|
||||||
|
opencensus:
|
||||||
|
|
||||||
|
ingester:
|
||||||
|
max_block_duration: 5m # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
|
||||||
|
|
||||||
|
compactor:
|
||||||
|
compaction:
|
||||||
|
block_retention: 1h # overall Tempo trace retention. set for demo purposes
|
||||||
|
|
||||||
|
metrics_generator:
|
||||||
|
registry:
|
||||||
|
external_labels:
|
||||||
|
source: tempo
|
||||||
|
cluster: docker-compose
|
||||||
|
storage:
|
||||||
|
path: /tmp/tempo/generator/wal
|
||||||
|
remote_write:
|
||||||
|
- url: http://prometheus:9090/api/v1/write
|
||||||
|
send_exemplars: true
|
||||||
|
|
||||||
|
storage:
|
||||||
|
trace:
|
||||||
|
backend: local # backend configuration to use
|
||||||
|
wal:
|
||||||
|
path: /tmp/tempo/wal # where to store the wal locally
|
||||||
|
local:
|
||||||
|
path: /tmp/tempo/blocks
|
||||||
|
|
||||||
|
#overrides:
|
||||||
|
# defaults:
|
||||||
|
# metrics_generator:
|
||||||
|
# processors: [service-graphs, span-metrics] # enables metrics generator
|
||||||
@@ -26,4 +26,80 @@
|
|||||||
<Match>
|
<Match>
|
||||||
<Package name="~.*\.domain"/>
|
<Package name="~.*\.domain"/>
|
||||||
</Match>
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.domain\..*"/>
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.data"/>
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~org\.apache\.fineract\.integrationtests.*"/>
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.self\..*"/>
|
||||||
|
<Bug pattern="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.api"/>
|
||||||
|
<Bug pattern="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.api"/>
|
||||||
|
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Package name="~.*\.api"/>
|
||||||
|
<Bug pattern="UUF_UNUSED_FIELD" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="MS_EXPOSE_REP" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="EI_EXPOSE_REP" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="EI_EXPOSE_REP2" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="NP_NULL_ON_SOME_PATH" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="NP_NULL_PARAM_DEREF" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="REC_CATCH_EXCEPTION" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="OBL_UNSATISFIED_OBLIGATION" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="MS_MUTABLE_COLLECTION_PKGPROTECT" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="BX_UNBOXING_IMMEDIATELY_REBOXED" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" />
|
||||||
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Bug pattern="UR_UNINIT_READ" />
|
||||||
|
</Match>
|
||||||
</FindBugsFilter>
|
</FindBugsFilter>
|
||||||
|
|||||||
+2
-2
@@ -24,9 +24,9 @@ import org.springframework.stereotype.Component;
|
|||||||
@Component
|
@Component
|
||||||
public class AcmeLoanRepaymentScheduleTransactionProcessor extends FineractStyleLoanRepaymentScheduleTransactionProcessor {
|
public class AcmeLoanRepaymentScheduleTransactionProcessor extends FineractStyleLoanRepaymentScheduleTransactionProcessor {
|
||||||
|
|
||||||
private static final String STRATEGY_CODE = "acme-standard-strategy";
|
public static final String STRATEGY_CODE = "acme-standard-strategy";
|
||||||
|
|
||||||
private static final String STRATEGY_NAME = "ACME Corp.: standard loan transaction processing strategy";
|
public static final String STRATEGY_NAME = "ACME Corp.: standard loan transaction processing strategy";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getCode() {
|
public String getCode() {
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencie
|
|||||||
jib {
|
jib {
|
||||||
from {
|
from {
|
||||||
image = 'azul/zulu-openjdk-alpine:17'
|
image = 'azul/zulu-openjdk-alpine:17'
|
||||||
|
platforms {
|
||||||
|
platform {
|
||||||
|
architecture = System.getProperty("os.arch").equals("aarch64")?"arm64":"amd64"
|
||||||
|
os = 'linux'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
@@ -38,22 +44,6 @@ jib {
|
|||||||
container {
|
container {
|
||||||
creationTime = 'USE_CURRENT_TIMESTAMP'
|
creationTime = 'USE_CURRENT_TIMESTAMP'
|
||||||
mainClass = 'org.apache.fineract.ServerApplication'
|
mainClass = 'org.apache.fineract.ServerApplication'
|
||||||
jvmFlags = [
|
|
||||||
'-Xms1G',
|
|
||||||
'-XshowSettings:vm',
|
|
||||||
'-XX:+UseContainerSupport',
|
|
||||||
'-XX:+UseStringDeduplication',
|
|
||||||
'-XX:MinRAMPercentage=25',
|
|
||||||
'-XX:MaxRAMPercentage=80',
|
|
||||||
'--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.base/java.lang=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.base/java.lang.invoke=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.base/java.io=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.base/java.security=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.base/java.util=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.management/javax.management=ALL-UNNAMED',
|
|
||||||
'--add-opens=java.naming/javax.naming=ALL-UNNAMED'
|
|
||||||
]
|
|
||||||
args = [
|
args = [
|
||||||
'-Duser.home=/tmp',
|
'-Duser.home=/tmp',
|
||||||
'-Dfile.encoding=UTF-8',
|
'-Dfile.encoding=UTF-8',
|
||||||
@@ -105,5 +95,3 @@ jib {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// tasks.jibDockerBuild.dependsOn(':fineract-provider:bootJar')
|
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
|
||||||
version: '3.7'
|
|
||||||
services:
|
|
||||||
# Backend service
|
|
||||||
fineractmysql:
|
|
||||||
image: mariadb:11.0
|
|
||||||
volumes:
|
|
||||||
- ../../fineract-db/server_collation.cnf:/etc/mysql/conf.d/server_collation.cnf
|
|
||||||
- ../../fineract-db/docker:/docker-entrypoint-initdb.d:Z,ro
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "--password=skdcnwauicn2ucnaecasdsajdnizucawencascdca" ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- "3306:3306"
|
|
||||||
fineract-server:
|
|
||||||
image: fineract-custom:latest
|
|
||||||
volumes:
|
|
||||||
- ../../fineract-provider/build/data:/data
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- 8443:8443
|
|
||||||
depends_on:
|
|
||||||
fineractmysql:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
# NOTE: node aware scheduler
|
|
||||||
- FINERACT_NODE_ID=1
|
|
||||||
# NOTE: env vars prefixed "FINERACT_HIKARI_*" are used to configure the database connection pool
|
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.mariadb.jdbc.Driver
|
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:mariadb://fineractmysql:3306/fineract_tenants
|
|
||||||
- FINERACT_HIKARI_USERNAME=root
|
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
# ... following variables are optional; "application.properties" contains reasonable defaults (same as here)
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractmysql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=3306
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=root
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
version: '3.7'
|
version: "3.8"
|
||||||
services:
|
services:
|
||||||
# Frontend service
|
# Frontend service
|
||||||
community-app:
|
community-app:
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can replace and test a more recent version of docker compose
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/mariadb.yml
|
||||||
|
service: mariadb
|
||||||
|
|
||||||
|
fineract:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/fineract-custom.yml
|
||||||
|
service: fineract
|
||||||
|
ports:
|
||||||
|
- "8443:8443"
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
env_file:
|
||||||
|
- ./config/docker/env/fineract.env
|
||||||
|
- ./config/docker/env/fineract-common.env
|
||||||
|
- ./config/docker/env/fineract-mariadb.env
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
x-logging: &default-logging
|
||||||
|
driver: loki
|
||||||
|
options:
|
||||||
|
loki-url: 'http://localhost:3100/api/prom/push'
|
||||||
|
loki-pipeline-stages: |
|
||||||
|
- multiline:
|
||||||
|
firstline: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}'
|
||||||
|
max_wait_time: 3s
|
||||||
|
- regex:
|
||||||
|
expression: '^(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}.\d{3}) (?P<message>(?s:.*))$$'
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
loki:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/observability.yml
|
||||||
|
service: loki
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/observability.yml
|
||||||
|
service: prometheus
|
||||||
|
depends_on:
|
||||||
|
- loki
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/observability.yml
|
||||||
|
service: grafana
|
||||||
|
depends_on:
|
||||||
|
- loki
|
||||||
|
|
||||||
|
tempo:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/observability.yml
|
||||||
|
service: tempo
|
||||||
|
depends_on:
|
||||||
|
- loki
|
||||||
|
|
||||||
|
db:
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/mariadb.yml
|
||||||
|
service: mariadb
|
||||||
|
depends_on:
|
||||||
|
- loki
|
||||||
|
logging: *default-logging
|
||||||
|
|
||||||
|
fineract:
|
||||||
|
container_name: fineract-development
|
||||||
|
extends:
|
||||||
|
file: ./config/docker/compose/fineract.yml
|
||||||
|
service: fineract
|
||||||
|
ports:
|
||||||
|
- "8443:8443"
|
||||||
|
- "5000:5000"
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
loki:
|
||||||
|
condition: service_started
|
||||||
|
env_file:
|
||||||
|
- ./config/docker/env/aws.env
|
||||||
|
- ./config/docker/env/fineract.env
|
||||||
|
- ./config/docker/env/fineract-common.env
|
||||||
|
- ./config/docker/env/fineract-mariadb.env
|
||||||
|
- ./config/docker/env/tracing.env
|
||||||
|
- ./config/docker/env/oltp.env
|
||||||
|
- ./config/docker/env/prometheus.env
|
||||||
|
# - ./config/docker/env/cloudwatch.env
|
||||||
|
- ./config/docker/env/debug.env
|
||||||
|
logging: *default-logging
|
||||||
@@ -16,142 +16,48 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
version: "3.8"
|
||||||
version: '3.7'
|
|
||||||
services:
|
services:
|
||||||
activemq:
|
activemq:
|
||||||
image: rmohr/activemq:5.15.9-alpine
|
extends:
|
||||||
ports:
|
file: ./config/docker/compose/activemq.yml
|
||||||
- 6161:6161
|
service: activemq
|
||||||
- 61616:61616
|
|
||||||
# Backend service
|
db:
|
||||||
fineractpostgresql:
|
extends:
|
||||||
image: postgres:15.3
|
file: ./config/docker/compose/postgresql.yml
|
||||||
volumes:
|
service: postgresql
|
||||||
- ./fineract-db/docker/postgresql:/docker-entrypoint-initdb.d/:Z,ro
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: root
|
|
||||||
POSTGRES_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_DB_USER: postgres
|
|
||||||
FINERACT_DB_PASS: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_TENANTS_DB_NAME: fineract_tenants
|
|
||||||
FINERACT_TENANT_DEFAULT_DB_NAME: fineract_default
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
fineract-manager:
|
fineract-manager:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- 8443:8443
|
- "8443:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
- FINERACT_NODE_ID=1
|
- ./config/docker/env/fineract-manager.env
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
- ./config/docker/env/activemq.env
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=true
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL=tcp://activemq:61616
|
|
||||||
- LOAN_COB_CHUNK_SIZE=10
|
|
||||||
- LOAN_COB_PARTITION_SIZE=10
|
|
||||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
|
||||||
fineract-worker:
|
fineract-worker:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
deploy:
|
deploy:
|
||||||
mode: replicated
|
mode: replicated
|
||||||
replicas: 2
|
replicas: 2
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- "8444-8445:8443"
|
- "8444-8445:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
fineract-manager:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
- FINERACT_NODE_ID=2
|
- ./config/docker/env/fineract-worker.env
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
- ./config/docker/env/activemq.env
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=false
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL=tcp://activemq:61616
|
|
||||||
|
|||||||
@@ -16,167 +16,45 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
version: "3.8"
|
||||||
version: '3.7'
|
|
||||||
services:
|
services:
|
||||||
# Backend service
|
db:
|
||||||
fineractpostgresql:
|
extends:
|
||||||
image: postgres:15.3
|
file: ./config/docker/compose/postgresql.yml
|
||||||
volumes:
|
service: postgresql
|
||||||
- ./fineract-db/docker/postgresql:/docker-entrypoint-initdb.d/:Z,ro
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: root
|
|
||||||
POSTGRES_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_DB_USER: postgres
|
|
||||||
FINERACT_DB_PASS: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_TENANTS_DB_NAME: fineract_tenants
|
|
||||||
FINERACT_TENANT_DEFAULT_DB_NAME: fineract_default
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
fineract-manager:
|
fineract-manager:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- 8443:8443
|
- "8443:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
- AWS_ACCESS_KEY_ID=
|
- ./config/docker/env/fineract-manager.env
|
||||||
- AWS_SECRET_ACCESS_KEY=
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_NODE_ID=1
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
- ./config/docker/env/aws.env
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/kafka-client-msk.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS=2
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=true
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=false
|
|
||||||
- LOAN_COB_CHUNK_SIZE=10
|
|
||||||
- LOAN_COB_PARTITION_SIZE=10
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384|security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS=2
|
|
||||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
|
||||||
fineract-worker:
|
fineract-worker:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
deploy:
|
deploy:
|
||||||
mode: replicated
|
mode: replicated
|
||||||
replicas: 2
|
replicas: 2
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- "8444-8445:8443"
|
- "8444-8445:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
fineract-manager:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
- AWS_ACCESS_KEY_ID=
|
- ./config/docker/env/fineract-worker.env
|
||||||
- AWS_SECRET_ACCESS_KEY=
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_NODE_ID=1
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
- ./config/docker/env/aws.env
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/kafka-client-msk.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=false
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS=2
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384|security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS=2
|
|
||||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
|
||||||
|
|||||||
@@ -17,161 +17,51 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
# You can replace and test a more recent version of docker compose
|
||||||
version: '3.7'
|
version: "3.7"
|
||||||
services:
|
services:
|
||||||
kafka:
|
kafka:
|
||||||
image: 'bitnami/kafka:3.5.1-debian-11-r7'
|
image: "bitnami/kafka:3.5.1-debian-11-r7"
|
||||||
ports:
|
ports:
|
||||||
- '9092:9092'
|
- "9092:9092"
|
||||||
environment:
|
env_file:
|
||||||
- KAFKA_CFG_NODE_ID=0
|
- ./config/docker/env/kafka-server.env
|
||||||
- KAFKA_CFG_PROCESS_ROLES=controller,broker
|
|
||||||
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
|
db:
|
||||||
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
|
extends:
|
||||||
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
|
file: ./config/docker/compose/postgresql.yml
|
||||||
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
|
service: postgresql
|
||||||
- ALLOW_PLAINTEXT_LISTENER=yes
|
|
||||||
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
|
|
||||||
# Backend service
|
|
||||||
fineractpostgresql:
|
|
||||||
image: postgres:15.3
|
|
||||||
volumes:
|
|
||||||
- ./fineract-db/docker/postgresql:/docker-entrypoint-initdb.d/:Z,ro
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: root
|
|
||||||
POSTGRES_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_DB_USER: postgres
|
|
||||||
FINERACT_DB_PASS: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_TENANTS_DB_NAME: fineract_tenants
|
|
||||||
FINERACT_TENANT_DEFAULT_DB_NAME: fineract_default
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
fineract-manager:
|
fineract-manager:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- 8443:8443
|
- "8443:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
kafka:
|
||||||
- FINERACT_NODE_ID=1
|
condition: service_started
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
env_file:
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/fineract-manager.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
- ./config/docker/env/kafka-client.env
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=true
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=false
|
|
||||||
- LOAN_COB_CHUNK_SIZE=10
|
|
||||||
- LOAN_COB_PARTITION_SIZE=10
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
|
||||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
|
||||||
fineract-worker:
|
fineract-worker:
|
||||||
image: fineract:latest
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/fineract.yml
|
||||||
- ./fineract-provider/build/data:/data
|
service: fineract
|
||||||
deploy:
|
deploy:
|
||||||
mode: replicated
|
mode: replicated
|
||||||
replicas: 2
|
replicas: 2
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- "8444-8445:8443"
|
- "8444-8445:8443"
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
fineract-manager:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
- FINERACT_NODE_ID=1
|
- ./config/docker/env/fineract-worker.env
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
- ./config/docker/env/fineract-common.env
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
- ./config/docker/env/kafka-client.env
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_SERVER_SSL_ENABLED=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=false
|
|
||||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
|
||||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
|
|
||||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
|
||||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
|
||||||
|
|||||||
@@ -16,81 +16,25 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
version: "3.8"
|
||||||
version: '3.7'
|
|
||||||
services:
|
services:
|
||||||
# Backend service
|
|
||||||
fineractpostgresql:
|
db:
|
||||||
image: postgres:15.3
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/postgresql.yml
|
||||||
- ./fineract-db/docker/postgresql:/docker-entrypoint-initdb.d/:Z,ro
|
service: postgresql
|
||||||
restart: always
|
|
||||||
environment:
|
fineract:
|
||||||
POSTGRES_USER: root
|
extends:
|
||||||
POSTGRES_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
file: ./config/docker/compose/fineract.yml
|
||||||
FINERACT_DB_USER: postgres
|
service: fineract
|
||||||
FINERACT_DB_PASS: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
FINERACT_TENANTS_DB_NAME: fineract_tenants
|
|
||||||
FINERACT_TENANT_DEFAULT_DB_NAME: fineract_default
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "8443:8443"
|
||||||
fineract-server:
|
|
||||||
image: fineract:latest
|
|
||||||
volumes:
|
|
||||||
- ./fineract-provider/build/data:/data
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- 8443:8443
|
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractpostgresql:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
# TODO: env vars prefixed with "fineract_tenants_*" will be removed with one of the next releases
|
- ./config/docker/env/fineract.env
|
||||||
#- fineract_tenants_driver=org.postgresql.Driver
|
- ./config/docker/env/fineract-common.env
|
||||||
#- fineract_tenants_url=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
- ./config/docker/env/fineract-postgresql.env
|
||||||
#- fineract_tenants_uid=postgres
|
|
||||||
#- fineract_tenants_pwd=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
# NOTE: node aware scheduler
|
|
||||||
- FINERACT_NODE_ID=1
|
|
||||||
# NOTE: env vars prefixed "FINERACT_HIKARI_*" are used to configure the database connection pool
|
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
|
||||||
- FINERACT_HIKARI_USERNAME=postgres
|
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
# ... following variables are optional; "application.properties" contains reasonable defaults (same as here)
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
# Frontend service
|
||||||
|
community-app:
|
||||||
|
image: openmf/web-app:latest
|
||||||
|
container_name: mifos-web-app
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 4200:80
|
||||||
+18
-70
@@ -16,77 +16,25 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
# You can replace and test a more recent version of docker compose
|
version: "3.8"
|
||||||
version: '3.7'
|
|
||||||
services:
|
services:
|
||||||
# Backend service
|
|
||||||
fineractmysql:
|
db:
|
||||||
image: mariadb:11.0
|
extends:
|
||||||
volumes:
|
file: ./config/docker/compose/mariadb.yml
|
||||||
- ./fineract-db/server_collation.cnf:/etc/mysql/conf.d/server_collation.cnf
|
service: mariadb
|
||||||
- ./fineract-db/docker:/docker-entrypoint-initdb.d:Z,ro
|
|
||||||
restart: always
|
fineract:
|
||||||
environment:
|
extends:
|
||||||
MYSQL_ROOT_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
file: ./config/docker/compose/fineract.yml
|
||||||
healthcheck:
|
service: fineract
|
||||||
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "8443:8443"
|
||||||
fineract-server:
|
|
||||||
image: fineract:latest
|
|
||||||
volumes:
|
|
||||||
- ./fineract-provider/build/data:/data
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
|
||||||
timeout: 10s
|
|
||||||
retries: 10
|
|
||||||
ports:
|
|
||||||
- 8443:8443
|
|
||||||
depends_on:
|
depends_on:
|
||||||
fineractmysql:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
environment:
|
env_file:
|
||||||
# TODO: env vars prefixed with "fineract_tenants_*" will be removed with one of the next releases
|
- ./config/docker/env/fineract.env
|
||||||
#- fineract_tenants_driver=org.mariadb.jdbc.Driver
|
- ./config/docker/env/fineract-common.env
|
||||||
#- fineract_tenants_url=jdbc:mariadb://fineractmysql:3306/fineract_tenants
|
- ./config/docker/env/fineract-mariadb.env
|
||||||
#- fineract_tenants_uid=root
|
|
||||||
#- fineract_tenants_pwd=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
# NOTE: node aware scheduler
|
|
||||||
- FINERACT_NODE_ID=1
|
|
||||||
# NOTE: env vars prefixed "FINERACT_HIKARI_*" are used to configure the database connection pool
|
|
||||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.mariadb.jdbc.Driver
|
|
||||||
- FINERACT_HIKARI_JDBC_URL=jdbc:mariadb://fineractmysql:3306/fineract_tenants
|
|
||||||
- FINERACT_HIKARI_USERNAME=root
|
|
||||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
# ... following variables are optional; "application.properties" contains reasonable defaults (same as here)
|
|
||||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
|
||||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
|
||||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
|
||||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
|
||||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
|
||||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
|
||||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
|
||||||
# NOTE: env vars prefixed "FINERACT_DEFAULT_TENANTDB_*" are used to create the default tenant database
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractmysql
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PORT=3306
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_UID=root
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
|
||||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
|
||||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
description = 'Fineract Accounting'
|
||||||
|
|
||||||
|
apply plugin: 'java'
|
||||||
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
|
compileJava.doLast {
|
||||||
|
def mainSS = sourceSets.main
|
||||||
|
def source = mainSS.java.classesDirectory.get()
|
||||||
|
copy {
|
||||||
|
from file("src/main/resources/jpa/accounting/persistence.xml")
|
||||||
|
into "${source}/META-INF/"
|
||||||
|
}
|
||||||
|
javaexec {
|
||||||
|
description = 'Performs EclipseLink static weaving of entity classes'
|
||||||
|
def target = source
|
||||||
|
main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave'
|
||||||
|
args '-persistenceinfo', source, source, target
|
||||||
|
classpath sourceSets.main.runtimeClasspath
|
||||||
|
}
|
||||||
|
delete {
|
||||||
|
delete "${source}/META-INF/persistence.xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
providedRuntime // needed for Spring Boot executable WAR
|
||||||
|
providedCompile
|
||||||
|
compile() {
|
||||||
|
exclude module: 'hibernate-entitymanager'
|
||||||
|
exclude module: 'hibernate-validator'
|
||||||
|
exclude module: 'activation'
|
||||||
|
exclude module: 'bcmail-jdk14'
|
||||||
|
exclude module: 'bcprov-jdk14'
|
||||||
|
exclude module: 'bctsp-jdk14'
|
||||||
|
exclude module: 'c3p0'
|
||||||
|
exclude module: 'stax-api'
|
||||||
|
exclude module: 'jaxb-api'
|
||||||
|
exclude module: 'jaxb-impl'
|
||||||
|
exclude module: 'jboss-logging'
|
||||||
|
exclude module: 'itext-rtf'
|
||||||
|
exclude module: 'classworlds'
|
||||||
|
}
|
||||||
|
runtime
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: 'dependencies.gradle'
|
||||||
|
|
||||||
|
// Configuration for the modernizer plugin
|
||||||
|
// https://github.com/andygoossens/gradle-modernizer-plugin
|
||||||
|
modernizer {
|
||||||
|
ignoreClassNamePatterns = [
|
||||||
|
'.*AbstractPersistableCustom',
|
||||||
|
'.*EntityTables',
|
||||||
|
'.*domain.*'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
|
||||||
|
// set the classes directory to point to Eclipse's default build directory
|
||||||
|
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
|
||||||
|
sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-accounting/bin/main")
|
||||||
|
}
|
||||||
|
|
||||||
|
eclipse {
|
||||||
|
project {
|
||||||
|
buildCommand([ LaunchConfigHandle: "<project>/.externalToolBuilders/OpenJPA Enhance Builder.launch" ], 'org.eclipse.ui.externaltools.ExternalToolBuilder')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */
|
||||||
|
sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory
|
||||||
|
sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory
|
||||||
|
|
||||||
|
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
|
||||||
|
sourceSets {
|
||||||
|
test {
|
||||||
|
java {
|
||||||
|
exclude '**/core/boot/tests/**'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
|
||||||
|
// Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library.
|
||||||
|
// We also (normally should have) no need to ever use 'compileOnly'.
|
||||||
|
|
||||||
|
// implementation dependencies are directly used (compiled against) in src/main (and src/test)
|
||||||
|
//
|
||||||
|
implementation(project(path: ':fineract-core'))
|
||||||
|
implementation(project(path: ':fineract-charge'))
|
||||||
|
implementation('org.apache.avro:avro')
|
||||||
|
implementation(
|
||||||
|
project(path: ':fineract-avro-schemas')
|
||||||
|
)
|
||||||
|
|
||||||
|
implementation(
|
||||||
|
'org.springframework.boot:spring-boot-starter-web',
|
||||||
|
'org.springframework.boot:spring-boot-starter-security',
|
||||||
|
'org.springframework.boot:spring-boot-starter-batch',
|
||||||
|
'org.springframework.batch:spring-batch-integration',
|
||||||
|
'jakarta.ws.rs:jakarta.ws.rs-api',
|
||||||
|
'org.glassfish.jersey.media:jersey-media-multipart',
|
||||||
|
|
||||||
|
'com.google.guava:guava',
|
||||||
|
'com.google.code.gson:gson',
|
||||||
|
|
||||||
|
'org.apache.commons:commons-lang3',
|
||||||
|
|
||||||
|
'com.jayway.jsonpath:json-path',
|
||||||
|
|
||||||
|
'com.github.spotbugs:spotbugs-annotations',
|
||||||
|
'io.swagger.core.v3:swagger-annotations-jakarta',
|
||||||
|
|
||||||
|
'com.squareup.retrofit2:converter-gson',
|
||||||
|
|
||||||
|
'org.springdoc:springdoc-openapi-starter-webmvc-ui',
|
||||||
|
'org.mapstruct:mapstruct',
|
||||||
|
|
||||||
|
'io.github.resilience4j:resilience4j-spring-boot3',
|
||||||
|
)
|
||||||
|
compileOnly 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.mapstruct:mapstruct-processor'
|
||||||
|
implementation ('org.springframework.boot:spring-boot-starter-data-jpa') {
|
||||||
|
exclude group: 'org.hibernate'
|
||||||
|
}
|
||||||
|
implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
|
||||||
|
exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
|
||||||
|
}
|
||||||
|
// testCompile dependencies are ONLY used in src/test, not src/main.
|
||||||
|
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
|
||||||
|
//
|
||||||
|
testImplementation( 'io.github.classgraph:classgraph' )
|
||||||
|
testImplementation ('org.springframework.boot:spring-boot-starter-test') {
|
||||||
|
exclude group: 'com.jayway.jsonpath', module: 'json-path'
|
||||||
|
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
|
||||||
|
exclude group: 'jakarta.activation'
|
||||||
|
exclude group: 'javax.activation'
|
||||||
|
exclude group: 'org.skyscreamer'
|
||||||
|
}
|
||||||
|
testImplementation ('org.mockito:mockito-inline')
|
||||||
|
}
|
||||||
-5
@@ -38,15 +38,10 @@ import org.apache.fineract.infrastructure.core.data.ApiParameterError;
|
|||||||
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
|
||||||
import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
import org.apache.fineract.infrastructure.core.exception.InvalidJsonException;
|
||||||
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
|
||||||
import org.apache.fineract.infrastructure.core.serialization.FromApiJsonDeserializer;
|
|
||||||
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
|
||||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||||
import org.apache.fineract.portfolio.loanaccount.guarantor.command.GuarantorCommand;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
|
||||||
* Implementation of {@link FromApiJsonDeserializer} for {@link GuarantorCommand}'s.
|
|
||||||
*/
|
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public final class AccrualAccountingDataValidator {
|
public final class AccrualAccountingDataValidator {
|
||||||
+3
-3
@@ -70,7 +70,7 @@ public class GLClosuresApiResource {
|
|||||||
Arrays.asList("id", "officeId", "officeName", "closingDate", "deleted", "createdDate", "lastUpdatedDate", "createdByUserId",
|
Arrays.asList("id", "officeId", "officeName", "closingDate", "deleted", "createdDate", "lastUpdatedDate", "createdByUserId",
|
||||||
"createdByUsername", "lastUpdatedByUserId", "lastUpdatedByUsername"));
|
"createdByUsername", "lastUpdatedByUserId", "lastUpdatedByUsername"));
|
||||||
|
|
||||||
private final String resourceNameForPermission = "GLCLOSURE";
|
private static final String RESOURCE_NAME_FOR_PERMISSION = "GLCLOSURE";
|
||||||
|
|
||||||
private final PlatformSecurityContext context;
|
private final PlatformSecurityContext context;
|
||||||
private final GLClosureReadPlatformService glClosureReadPlatformService;
|
private final GLClosureReadPlatformService glClosureReadPlatformService;
|
||||||
@@ -88,7 +88,7 @@ public class GLClosuresApiResource {
|
|||||||
public String retrieveAllClosures(@Context final UriInfo uriInfo,
|
public String retrieveAllClosures(@Context final UriInfo uriInfo,
|
||||||
@QueryParam("officeId") @Parameter(name = "officeId") final Long officeId) {
|
@QueryParam("officeId") @Parameter(name = "officeId") final Long officeId) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSION);
|
||||||
final List<GLClosureData> glClosureDatas = this.glClosureReadPlatformService.retrieveAllGLClosures(officeId);
|
final List<GLClosureData> glClosureDatas = this.glClosureReadPlatformService.retrieveAllGLClosures(officeId);
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
@@ -106,7 +106,7 @@ public class GLClosuresApiResource {
|
|||||||
public String retreiveClosure(@PathParam("glClosureId") @Parameter(description = "glClosureId") final Long glClosureId,
|
public String retreiveClosure(@PathParam("glClosureId") @Parameter(description = "glClosureId") final Long glClosureId,
|
||||||
@Context final UriInfo uriInfo) {
|
@Context final UriInfo uriInfo) {
|
||||||
|
|
||||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
this.context.authenticatedUser().validateHasReadPermission(RESOURCE_NAME_FOR_PERMISSION);
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
|
|
||||||
+5
-6
@@ -35,7 +35,7 @@ import org.apache.fineract.accounting.closure.serialization.GLClosureCommandFrom
|
|||||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
|
import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
|
||||||
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
import org.apache.fineract.infrastructure.core.exception.ErrorHandler;
|
||||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
||||||
import org.apache.fineract.organisation.office.domain.Office;
|
import org.apache.fineract.organisation.office.domain.Office;
|
||||||
import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
|
import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
|
||||||
@@ -66,15 +66,14 @@ public class GLClosureWritePlatformServiceJpaRepositoryImpl implements GLClosure
|
|||||||
final Office office = this.officeRepositoryWrapper.findOneWithNotFoundDetection(officeId);
|
final Office office = this.officeRepositoryWrapper.findOneWithNotFoundDetection(officeId);
|
||||||
// TODO: Get Tenant specific date
|
// TODO: Get Tenant specific date
|
||||||
// ensure closure date is not in the future
|
// ensure closure date is not in the future
|
||||||
final LocalDate todaysDate = DateUtils.getBusinessLocalDate();
|
|
||||||
final LocalDate closureDate = command.localDateValueOfParameterNamed(GLClosureJsonInputParams.CLOSING_DATE.getValue());
|
final LocalDate closureDate = command.localDateValueOfParameterNamed(GLClosureJsonInputParams.CLOSING_DATE.getValue());
|
||||||
if (closureDate.isAfter(todaysDate)) {
|
if (DateUtils.isDateInTheFuture(closureDate)) {
|
||||||
throw new GLClosureInvalidException(GlClosureInvalidReason.FUTURE_DATE, closureDate);
|
throw new GLClosureInvalidException(GlClosureInvalidReason.FUTURE_DATE, closureDate);
|
||||||
}
|
}
|
||||||
// shouldn't be before an existing accounting closure
|
// shouldn't be before an existing accounting closure
|
||||||
final GLClosure latestGLClosure = this.glClosureRepository.getLatestGLClosureByBranch(officeId);
|
final GLClosure latestGLClosure = this.glClosureRepository.getLatestGLClosureByBranch(officeId);
|
||||||
if (latestGLClosure != null) {
|
if (latestGLClosure != null) {
|
||||||
if (latestGLClosure.getClosingDate().isAfter(closureDate)) {
|
if (DateUtils.isAfter(latestGLClosure.getClosingDate(), closureDate)) {
|
||||||
throw new GLClosureInvalidException(GlClosureInvalidReason.ACCOUNTING_CLOSED, latestGLClosure.getClosingDate());
|
throw new GLClosureInvalidException(GlClosureInvalidReason.ACCOUNTING_CLOSED, latestGLClosure.getClosingDate());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -122,7 +121,7 @@ public class GLClosureWritePlatformServiceJpaRepositoryImpl implements GLClosure
|
|||||||
**/
|
**/
|
||||||
final LocalDate closureDate = glClosure.getClosingDate();
|
final LocalDate closureDate = glClosure.getClosingDate();
|
||||||
final GLClosure latestGLClosure = this.glClosureRepository.getLatestGLClosureByBranch(glClosure.getOffice().getId());
|
final GLClosure latestGLClosure = this.glClosureRepository.getLatestGLClosureByBranch(glClosure.getOffice().getId());
|
||||||
if (latestGLClosure.getClosingDate().isAfter(closureDate)) {
|
if (DateUtils.isAfter(latestGLClosure.getClosingDate(), closureDate)) {
|
||||||
throw new GLClosureInvalidDeleteException(latestGLClosure.getOffice().getId(), latestGLClosure.getOffice().getName(),
|
throw new GLClosureInvalidDeleteException(latestGLClosure.getOffice().getId(), latestGLClosure.getOffice().getName(),
|
||||||
latestGLClosure.getClosingDate());
|
latestGLClosure.getClosingDate());
|
||||||
}
|
}
|
||||||
@@ -144,7 +143,7 @@ public class GLClosureWritePlatformServiceJpaRepositoryImpl implements GLClosure
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.error("Error occured.", dve);
|
log.error("Error occured.", dve);
|
||||||
throw new PlatformDataIntegrityException("error.msg.glClosure.unknown.data.integrity.issue",
|
throw ErrorHandler.getMappable(dve, "error.msg.glClosure.unknown.data.integrity.issue",
|
||||||
"Unknown data integrity issue with resource GL Closure: " + realCause.getMessage());
|
"Unknown data integrity issue with resource GL Closure: " + realCause.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.fineract.accounting.common;
|
||||||
|
|
||||||
|
public final class AccountingValidations {
|
||||||
|
|
||||||
|
private AccountingValidations() {}
|
||||||
|
|
||||||
|
public static boolean isCashBasedAccounting(final Integer accountingRuleType) {
|
||||||
|
return AccountingRuleType.CASH_BASED.getValue().equals(accountingRuleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAccrualPeriodicBasedAccounting(final Integer accountingRuleType) {
|
||||||
|
return AccountingRuleType.ACCRUAL_PERIODIC.getValue().equals(accountingRuleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isUpfrontAccrualAccounting(final Integer accountingRuleType) {
|
||||||
|
return AccountingRuleType.ACCRUAL_UPFRONT.getValue().equals(accountingRuleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAccrualBasedAccounting(final Integer accountingRuleType) {
|
||||||
|
return AccountingRuleType.ACCRUAL_PERIODIC.getValue().equals(accountingRuleType)
|
||||||
|
|| AccountingRuleType.ACCRUAL_UPFRONT.getValue().equals(accountingRuleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isCashOrAccrualBasedAccounting(final Integer accountingRuleType) {
|
||||||
|
return isCashBasedAccounting(accountingRuleType) || isAccrualBasedAccounting(accountingRuleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user