Compare commits
500
Commits
d6c10e8303
...
1db87b1e12
@@ -7,24 +7,28 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- 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
|
||||
run: docker-compose up -d
|
||||
run: docker compose up -d
|
||||
- name: Wait for stack to come up
|
||||
run: sleep 300
|
||||
run: sleep 500
|
||||
- name: Check the stack
|
||||
run: docker ps
|
||||
- name: Check 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
|
||||
|
||||
@@ -7,24 +7,28 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
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: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
|
||||
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
|
||||
run: sleep 300
|
||||
run: sleep 500
|
||||
- name: Check the stack
|
||||
run: docker ps
|
||||
- name: Check 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
|
||||
|
||||
@@ -6,25 +6,27 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Congfigure vega-cli
|
||||
run: npm i -g vega-cli --unsafe
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
||||
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||
- name: Install additional software
|
||||
run: |
|
||||
sudo apt-get update
|
||||
|
||||
@@ -6,11 +6,11 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
services:
|
||||
mariad:
|
||||
image: mariadb:11.0
|
||||
image: mariadb:11.2
|
||||
ports:
|
||||
- 3306:3306
|
||||
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
|
||||
|
||||
mock-oauth2-server:
|
||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
||||
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||
ports:
|
||||
- 9000:9000
|
||||
env:
|
||||
@@ -30,20 +30,22 @@ jobs:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Congfigure vega-cli
|
||||
run: npm i -g vega-cli --unsafe
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
||||
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||
- name: Verify MariaDB connection
|
||||
run: |
|
||||
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
||||
@@ -79,24 +81,25 @@ jobs:
|
||||
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
||||
run: |
|
||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||
./gradlew --no-daemon --console=plain cucumber
|
||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test
|
||||
./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 -x :fineract-e2e-tests-runner:test
|
||||
./gradlew --no-daemon --console=plain :twofactor-tests:test
|
||||
./gradlew --no-daemon --console=plain :oauth2-tests:test
|
||||
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: test-results
|
||||
path: |
|
||||
build/reports/
|
||||
integration-tests/build/reports/
|
||||
twofactor-tests/build/reports/
|
||||
oauth2-tests/build/reports/
|
||||
|
||||
- name: Archive server logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: server-logs
|
||||
path: |
|
||||
|
||||
@@ -6,11 +6,11 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
services:
|
||||
mariad:
|
||||
image: mysql:8.0
|
||||
image: mysql:8.3
|
||||
ports:
|
||||
- 3306:3306
|
||||
env:
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
||||
|
||||
mock-oauth2-server:
|
||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
||||
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||
ports:
|
||||
- 9000:9000
|
||||
env:
|
||||
@@ -30,20 +30,22 @@ jobs:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Congfigure vega-cli
|
||||
run: npm i -g vega-cli --unsafe
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
||||
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||
- name: Verify MariaDB connection
|
||||
run: |
|
||||
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
|
||||
@@ -79,24 +81,25 @@ jobs:
|
||||
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
|
||||
run: |
|
||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||
./gradlew --no-daemon --console=plain cucumber
|
||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -PdbType=mysql
|
||||
./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 :fineract-e2e-tests-runner:test -PdbType=mysql
|
||||
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=mysql
|
||||
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=mysql
|
||||
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: test-results
|
||||
path: |
|
||||
build/reports/
|
||||
integration-tests/build/reports/
|
||||
twofactor-tests/build/reports/
|
||||
oauth2-tests/build/reports/
|
||||
|
||||
- name: Archive server logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: server-logs
|
||||
path: |
|
||||
|
||||
@@ -6,11 +6,11 @@ permissions:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
services:
|
||||
postgresql:
|
||||
image: postgres:15.3
|
||||
image: postgres:16.1
|
||||
ports:
|
||||
- 5432:5432
|
||||
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
|
||||
|
||||
mock-oauth2-server:
|
||||
image: ghcr.io/navikt/mock-oauth2-server:1.0.0
|
||||
image: ghcr.io/navikt/mock-oauth2-server:2.1.1
|
||||
ports:
|
||||
- 9000:9000
|
||||
env:
|
||||
@@ -31,20 +31,22 @@ jobs:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # tag=v3
|
||||
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Congfigure vega-cli
|
||||
run: npm i -g vega-cli --unsafe
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
||||
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||
- name: Verify PostgreSQL connection
|
||||
run: |
|
||||
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
|
||||
run: |
|
||||
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
|
||||
./gradlew --no-daemon --console=plain cucumber
|
||||
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql
|
||||
./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 :fineract-e2e-tests-runner:test -PdbType=postgresql
|
||||
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=postgresql
|
||||
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=postgresql
|
||||
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: test-results
|
||||
path: |
|
||||
build/reports/
|
||||
integration-tests/build/reports/
|
||||
twofactor-tests/build/reports/
|
||||
oauth2-tests/build/reports/
|
||||
|
||||
- name: Archive server logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # tag=v3
|
||||
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
|
||||
with:
|
||||
name: server-logs
|
||||
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:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
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: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
|
||||
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
|
||||
run: sleep 500
|
||||
- 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: Check health Worker1
|
||||
@@ -34,4 +38,4 @@ jobs:
|
||||
- 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 ))
|
||||
- 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:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
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: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
|
||||
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
|
||||
run: sleep 500
|
||||
- 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: Check health Worker1
|
||||
@@ -34,4 +38,4 @@ jobs:
|
||||
- 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 ))
|
||||
- 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:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
TZ: Asia/Kolkata
|
||||
SONAR_ORGANIZATION: ${{ secrets.SONAR_ORGANIZATION }}
|
||||
@@ -20,14 +20,16 @@ jobs:
|
||||
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # tag=v3
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3
|
||||
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'zulu'
|
||||
cache: gradle
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@56b90f209b02bf6d1deae490e9ef18b21a389cd4
|
||||
uses: gradle/wrapper-validation-action@88425854a36845f9c881450d9660b5fd46bee142
|
||||
- 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
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
pull-requests: write # for actions/stale to close stale PRs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8
|
||||
- uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# stale-issue-message: 'Stale issue message'
|
||||
|
||||
+4
-4
@@ -25,8 +25,8 @@ licenses
|
||||
**/.asciidoctor/images/*
|
||||
**/.asciidoctor/diagram/*
|
||||
**/images/diag-*.svg
|
||||
fineract-avro-schemas/out/
|
||||
fineract-client/out/
|
||||
|
||||
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
|
||||
============
|
||||
[](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>
|
||||
|
||||
@@ -22,15 +22,15 @@ If you are interested in contributing to this project, but perhaps don't quite k
|
||||
REQUIREMENTS
|
||||
============
|
||||
* `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:
|
||||
|
||||
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:
|
||||
|
||||
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>
|
||||
|
||||
@@ -75,7 +75,7 @@ Run the following commands:
|
||||
============
|
||||
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.
|
||||
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)
|
||||
|
||||
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. 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. `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. 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.
|
||||
@@ -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)),
|
||||
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
|
||||
=============================
|
||||
@@ -217,7 +228,7 @@ NOTE: we'll keep backwards compatibility until one of the next releases to ensur
|
||||
<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.
|
||||
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
|
||||
============
|
||||
|
||||
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,
|
||||
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
|
||||
============
|
||||
|
||||
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.)
|
||||
@@ -410,7 +421,7 @@ Apache Fineract supports client code generation using [Swagger Codegen](https://
|
||||
<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).
|
||||
* [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
|
||||
[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
|
||||
=======================
|
||||
@@ -466,7 +477,8 @@ documents the process through which you can become a committer in this project.
|
||||
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:
|
||||
|
||||
|
||||
+97
-41
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
/**
|
||||
* 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
|
||||
@@ -19,7 +19,7 @@
|
||||
// TODO: this is work in progress, please follow FINERACT-1171
|
||||
buildscript {
|
||||
ext {
|
||||
jacocoVersion = '0.8.10'
|
||||
jacocoVersion = '0.8.11'
|
||||
retrofitVersion = '2.9.0'
|
||||
okhttpVersion = '4.9.3'
|
||||
oltuVersion = '1.0.1'
|
||||
@@ -28,23 +28,45 @@ buildscript {
|
||||
[
|
||||
'fineract-api',
|
||||
'fineract-core',
|
||||
'fineract-accounting',
|
||||
'fineract-provider',
|
||||
'fineract-branch',
|
||||
'fineract-document',
|
||||
'fineract-investor',
|
||||
'fineract-charge',
|
||||
'fineract-rates',
|
||||
'fineract-tax',
|
||||
'fineract-loan',
|
||||
'fineract-savings',
|
||||
'fineract-report',
|
||||
'integration-tests',
|
||||
'twofactor-tests',
|
||||
'oauth2-tests',
|
||||
'fineract-client',
|
||||
'fineract-avro-schemas'
|
||||
'fineract-avro-schemas',
|
||||
'fineract-e2e-tests-core',
|
||||
'fineract-e2e-tests-runner',
|
||||
'fineract-progressive-loan'
|
||||
].contains(it.name)
|
||||
}
|
||||
fineractPublishProjects = subprojects.findAll{
|
||||
[
|
||||
'fineract-avro-schemas',
|
||||
'fineract-api',
|
||||
'fineract-client',
|
||||
'fineract-core',
|
||||
'fineract-accounting',
|
||||
'fineract-provider',
|
||||
'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)
|
||||
}
|
||||
npmRepository = 'https://npm.pkg.github.com'
|
||||
@@ -58,37 +80,39 @@ buildscript {
|
||||
classpath 'org.eclipse.persistence:eclipselink:4.0.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 'org.apache.commons:commons-lang3:3.12.0'
|
||||
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.11'
|
||||
classpath 'org.apache.commons:commons-lang3:3.14.0'
|
||||
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22'
|
||||
classpath 'jakarta.servlet:jakarta.servlet-api:6.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "org.barfuin.gradle.taskinfo" version "2.1.0"
|
||||
id 'com.adarshr.test-logger' version '3.2.0'
|
||||
id 'com.diffplug.spotless' version '6.19.0' apply false
|
||||
id 'org.nosphere.apache.rat' version '0.8.0' apply false
|
||||
id 'me.qoomon.git-versioning' version '6.4.3'
|
||||
id "org.barfuin.gradle.taskinfo" version "2.2.0"
|
||||
id 'com.adarshr.test-logger' version '4.0.0'
|
||||
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.jk1.dependency-license-report' version '2.5' apply false
|
||||
id 'org.zeroturnaround.gradle.jrebel' version '1.1.12' apply false
|
||||
id 'org.springframework.boot' version '3.1.1' apply false
|
||||
id 'org.zeroturnaround.gradle.jrebel' version '1.2.0' apply false
|
||||
id 'org.springframework.boot' version '3.2.6' 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 '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.epub' 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.revealjs' 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 'com.google.cloud.tools.jib' version '3.3.2' apply false
|
||||
id 'fr.brouillard.oss.gradle.jgitver' version '0.10.0-rc03'
|
||||
id 'org.sonarqube' version '4.2.1.3168'
|
||||
id 'com.github.andygoossens.modernizer' version '1.8.0' apply false
|
||||
id 'com.github.spotbugs' version '5.0.14' apply false
|
||||
id 'com.google.cloud.tools.jib' version '3.4.2' apply false
|
||||
id 'org.sonarqube' version '4.4.1.3373'
|
||||
id 'com.github.andygoossens.modernizer' version '1.9.0' apply false
|
||||
// TODO: upgrade to 6.0.4
|
||||
id 'com.github.spotbugs' version '5.2.5' 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"
|
||||
@@ -97,17 +121,32 @@ description = '''\
|
||||
Run as:
|
||||
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()
|
||||
|
||||
allprojects {
|
||||
group = 'org.apache.fineract'
|
||||
|
||||
jgitver {
|
||||
strategy 'PATTERN'
|
||||
versionPattern ( project.hasProperty('fineract.release.version') ? '${v}' : '${M}.${m}.${p}-${meta.GIT_SHA1_8}' )
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
@@ -126,7 +165,7 @@ allprojects {
|
||||
spotless {
|
||||
format 'misc', {
|
||||
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)
|
||||
endWithNewline()
|
||||
trimTrailingWhitespace()
|
||||
@@ -259,7 +298,8 @@ allprojects {
|
||||
".mailmap",
|
||||
'**/images/diag-*.svg',
|
||||
'**/*.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.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 {
|
||||
implementation.setCanBeResolved(true)
|
||||
api.setCanBeResolved(true)
|
||||
@@ -341,9 +390,9 @@ configure(project.fineractJavaProjects) {
|
||||
// and during an IntelliJ recompilation, it fails
|
||||
//"-Werror",
|
||||
"-Xmaxwarns",
|
||||
1500,
|
||||
"1500",
|
||||
"-Xmaxerrs",
|
||||
1500
|
||||
"1500"
|
||||
]
|
||||
// TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
|
||||
|
||||
@@ -406,7 +455,7 @@ configure(project.fineractJavaProjects) {
|
||||
// Configuration for the Checkstyle plugin
|
||||
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
|
||||
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'
|
||||
}
|
||||
|
||||
@@ -428,7 +477,7 @@ configure(project.fineractJavaProjects) {
|
||||
// Configuration for the errorprone plugin
|
||||
// https://github.com/tbroyer/gradle-errorprone-plugin
|
||||
dependencies {
|
||||
errorprone "com.google.errorprone:error_prone_core:2.20.0"
|
||||
errorprone "com.google.errorprone:error_prone_core:2.26.1"
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
@@ -554,6 +603,7 @@ configure(project.fineractJavaProjects) {
|
||||
'org.mockito:mockito-junit-jupiter',
|
||||
'org.junit.jupiter:junit-jupiter-api',
|
||||
'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.bouncycastle:bcpkix-jdk15to18',
|
||||
'org.bouncycastle:bcprov-jdk15to18',
|
||||
@@ -582,7 +632,8 @@ configure(project.fineractJavaProjects) {
|
||||
|
||||
// To generate an HTML report instead of XML
|
||||
spotbugs {
|
||||
reportLevel = 'high'
|
||||
// reportLevel = 'high'
|
||||
// reportLevel = com.github.spotbugs.snom.Confidence.DEFAULT
|
||||
showProgress = false
|
||||
excludeFilter = file("$rootDir/config/spotbugs/exclude.xml")
|
||||
}
|
||||
@@ -661,10 +712,10 @@ configure(project.fineractCustomProjects) {
|
||||
'com.google.truth.extensions:truth-java8-extension',
|
||||
'io.github.classgraph:classgraph',
|
||||
'io.cucumber:cucumber-core',
|
||||
'io.cucumber:cucumber-java',
|
||||
'io.cucumber:cucumber-java8',
|
||||
'io.cucumber:cucumber-junit-platform-engine',
|
||||
'io.cucumber:cucumber-spring',
|
||||
'io.cucumber:cucumber-java:7.16.1',
|
||||
'io.cucumber:cucumber-java8:7.16.1',
|
||||
'io.cucumber:cucumber-junit-platform-engine:7.16.1',
|
||||
'io.cucumber:cucumber-spring:7.16.1',
|
||||
)
|
||||
|
||||
testCompileOnly('org.projectlombok:lombok')
|
||||
@@ -677,7 +728,10 @@ configure(project.fineractCustomProjects) {
|
||||
|
||||
configure(project.fineractPublishProjects) {
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'signing'
|
||||
|
||||
if (!project.hasProperty('noSign')) {
|
||||
apply plugin: 'signing'
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
@@ -731,8 +785,10 @@ configure(project.fineractPublishProjects) {
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
sign publishing.publications.mavenJava
|
||||
if (!project.hasProperty('noSign')) {
|
||||
signing {
|
||||
sign publishing.publications.mavenJava
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
import static org.slf4j.LoggerFactory.*
|
||||
|
||||
plugins {
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'io.spring.dependency-management' version '1.1.4'
|
||||
id 'groovy'
|
||||
id 'java-gradle-plugin'
|
||||
id 'groovy-gradle-plugin'
|
||||
@@ -58,4 +58,5 @@ dependencies {
|
||||
implementation 'com.squareup.retrofit2:retrofit'
|
||||
implementation 'com.squareup.retrofit2:converter-jackson'
|
||||
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
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom 'org.springframework:spring-framework-bom:6.0.10'
|
||||
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.1.1'
|
||||
mavenBom 'org.jetbrains.kotlin:kotlin-bom:1.8.22'
|
||||
mavenBom 'org.junit:junit-bom:5.9.3'
|
||||
mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2'
|
||||
mavenBom 'io.cucumber:cucumber-bom:7.12.1'
|
||||
mavenBom 'io.netty:netty-bom:4.1.94.Final'
|
||||
mavenBom 'org.mockito:mockito-bom:5.4.0'
|
||||
mavenBom 'software.amazon.awssdk:bom:2.20.97'
|
||||
mavenBom 'com.squareup.okhttp3:okhttp-bom:4.12.0'
|
||||
mavenBom 'org.slf4j:slf4j-bom:2.0.12'
|
||||
mavenBom 'io.micrometer:micrometer-bom:1.12.2'
|
||||
mavenBom 'org.springframework:spring-framework-bom:6.1.3'
|
||||
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.2.6'
|
||||
mavenBom 'io.awspring.cloud:spring-cloud-aws-dependencies:3.1.0'
|
||||
mavenBom 'io.opentelemetry:opentelemetry-bom:1.34.1'
|
||||
mavenBom 'org.jetbrains.kotlin:kotlin-bom:1.9.24'
|
||||
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 {
|
||||
@@ -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 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 'org.slf4j:slf4j-simple:2.0.7'
|
||||
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:logback-core:1.5.3'
|
||||
dependency 'ch.qos.logback:logback-classic:1.5.3'
|
||||
dependency 'ch.qos.logback.contrib:logback-json-classic: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 'com.google.guava:guava:32.0.0-jre'
|
||||
dependency 'com.google.code.gson:gson:2.10.1'
|
||||
dependency 'com.google.truth:truth:1.1.5'
|
||||
dependency 'com.google.truth.extensions:truth-java8-extension:1.1.5'
|
||||
dependency 'com.google.googlejavaformat:google-java-format:1.17.0'
|
||||
dependency ('org.apache.commons:commons-email:1.5') {
|
||||
dependency 'com.google.truth:truth:1.4.0'
|
||||
dependency 'com.google.truth.extensions:truth-java8-extension:1.4.0'
|
||||
dependency 'com.google.googlejavaformat:google-java-format:1.19.2'
|
||||
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 'javax.activation:activation'
|
||||
}
|
||||
dependency 'commons-io:commons-io:2.13.0'
|
||||
dependency 'com.github.librepdf:openpdf:1.3.30'
|
||||
dependency ('org.mnode.ical4j:ical4j:3.2.11') {
|
||||
dependency 'commons-io:commons-io:2.15.1'
|
||||
dependency 'com.github.librepdf:openpdf:2.0.0'
|
||||
dependency ('org.mnode.ical4j:ical4j:3.2.14') {
|
||||
exclude 'com.sun.mail:javax.mail'
|
||||
exclude 'org.codehaus.groovy:groovy'
|
||||
}
|
||||
dependency 'org.apache.commons:commons-csv:1.10.0'
|
||||
dependency 'org.quartz-scheduler:quartz:2.3.2'
|
||||
dependency 'software.amazon.awssdk:bom:2.20.97'
|
||||
dependency 'org.ehcache:ehcache:3.10.8'
|
||||
dependency 'com.github.spullara.mustache.java:compiler:0.9.10'
|
||||
dependency 'com.jayway.jsonpath:json-path:2.8.0'
|
||||
dependency 'org.apache.tika:tika-core:2.8.0'
|
||||
dependency ('org.apache.tika:tika-parser-microsoft-module:2.8.0') {
|
||||
dependency 'com.github.spullara.mustache.java:compiler:0.9.11'
|
||||
dependency 'com.jayway.jsonpath:json-path:2.9.0'
|
||||
dependency 'org.apache.tika:tika-core:2.9.1'
|
||||
dependency ('org.apache.tika:tika-parser-microsoft-module:2.9.2') {
|
||||
exclude 'org.bouncycastle:bcprov-jdk15on'
|
||||
exclude 'org.bouncycastle:bcmail-jdk15on'
|
||||
exclude 'org.bouncycastle:bcprov-jdk18on'
|
||||
@@ -82,9 +86,7 @@ dependencyManagement {
|
||||
exclude 'org.apache.logging.log4j:log4j-api'
|
||||
exclude 'org.slf4j:slf4j-api'
|
||||
exclude 'commons-io:commons-io'
|
||||
exclude 'commons-logging:commons-logging'
|
||||
exclude 'commons-codec:commons-codec'
|
||||
exclude 'org.apache.commons:commons-compress'
|
||||
exclude 'org.apache.commons:commons-lang3'
|
||||
exclude 'org.apache.poi:poi'
|
||||
exclude 'org.apache.poi:poi-scratchpad'
|
||||
@@ -92,7 +94,7 @@ dependencyManagement {
|
||||
exclude 'org.apache.commons:commons-compress'
|
||||
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:bcmail-jdk15on'
|
||||
exclude 'org.bouncycastle:bcprov-jdk18on'
|
||||
@@ -102,7 +104,6 @@ dependencyManagement {
|
||||
exclude 'org.slf4j:slf4j-api'
|
||||
exclude 'commons-io:commons-io'
|
||||
exclude 'commons-codec:commons-codec'
|
||||
exclude 'org.apache.commons:commons-compress'
|
||||
exclude 'org.apache.commons:commons-lang3'
|
||||
exclude 'org.apache.poi:poi'
|
||||
exclude 'org.apache.poi:poi-scratchpad'
|
||||
@@ -116,19 +117,20 @@ dependencyManagement {
|
||||
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
|
||||
dependency 'jakarta.jms:jakarta.jms-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.apache.bval:org.apache.bval.bundle:2.0.6'
|
||||
dependency 'joda-time:joda-time:2.12.5'
|
||||
dependency 'org.apache.bval:org.apache.bval.bundle:3.0.0'
|
||||
dependency 'joda-time:joda-time:2.12.7'
|
||||
|
||||
dependency 'io.github.classgraph:classgraph:4.8.160'
|
||||
dependency 'org.awaitility:awaitility:4.2.0'
|
||||
dependency 'com.github.spotbugs:spotbugs-annotations:4.7.3'
|
||||
dependency 'io.github.classgraph:classgraph:4.8.168'
|
||||
dependency 'org.awaitility:awaitility:4.2.1'
|
||||
// TODO: upgrade to 4.8.3
|
||||
dependency 'com.github.spotbugs:spotbugs-annotations:4.8.3'
|
||||
dependency 'javax.cache:cache-api:1.1.1'
|
||||
dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0'
|
||||
dependency 'org.webjars:webjars-locator-core:0.53'
|
||||
dependency 'com.icegreen:greenmail-junit5:2.0.0'
|
||||
dependency 'com.intuit.karate:karate-junit5:1.4.0'
|
||||
dependency 'org.webjars:webjars-locator-core:0.55'
|
||||
dependency 'com.icegreen:greenmail-junit5:2.0.1'
|
||||
dependency 'com.intuit.karate:karate-junit5:1.4.1'
|
||||
|
||||
// fineract client dependencies
|
||||
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-gson: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.client: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 "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 "io.gsonfire:gson-fire:1.9.0"
|
||||
dependency "com.google.code.findbugs:jsr305:3.0.2"
|
||||
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:bcprov-jdk15to18:1.75'
|
||||
dependency 'org.bouncycastle:bcpkix-jdk15to18:1.77'
|
||||
dependency 'org.bouncycastle:bcprov-jdk15to18:1.77'
|
||||
dependency 'org.bouncycastle:bcprov-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.ssh.apache: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.8.0.202311291450-r'
|
||||
|
||||
dependency 'org.tmatesoft.svnkit:svnkit:1.10.11'
|
||||
dependency 'com.vdurmont:semver4j:3.1.0'
|
||||
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'
|
||||
}
|
||||
|
||||
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'
|
||||
}
|
||||
|
||||
dependency 'io.swagger.core.v3:swagger-annotations-jakarta:2.2.11'
|
||||
dependency ('io.swagger.core.v3:swagger-jaxrs2-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.22') {
|
||||
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'
|
||||
}
|
||||
|
||||
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 ('com.sun.mail:jakarta.mail:2.0.1') {
|
||||
// Spring needs this version
|
||||
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'
|
||||
}
|
||||
|
||||
dependency ('org.liquibase:liquibase-core:4.23.0') {
|
||||
dependency ('org.liquibase:liquibase-core:4.25.1') {
|
||||
exclude 'javax.xml.bind:jaxb-api'
|
||||
}
|
||||
dependency 'org.liquibase.ext:liquibase-postgresql:4.25.1.1'
|
||||
|
||||
dependency ('org.dom4j:dom4j:2.1.4') {
|
||||
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'
|
||||
}
|
||||
|
||||
dependency 'org.owasp.esapi:esapi:2.5.2.0'
|
||||
dependency 'org.awaitility:awaitility:4.2.0'
|
||||
dependency 'org.owasp.esapi:esapi:2.5.3.1'
|
||||
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-ooxml'
|
||||
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 'json-path'
|
||||
entry 'xml-path'
|
||||
}
|
||||
dependency 'org.apache.groovy:groovy-xml:4.0.13'
|
||||
dependency 'org.apache.groovy:groovy-json:4.0.13'
|
||||
dependency 'org.apache.groovy:groovy-xml:4.0.18'
|
||||
dependency 'org.apache.groovy:groovy-json:4.0.18'
|
||||
|
||||
dependency 'org.mapstruct:mapstruct: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.1.4') {
|
||||
dependency ('org.mariadb.jdbc:mariadb-java-client:3.3.2') {
|
||||
exclude 'org.slf4j:jcl-over-slf4j'
|
||||
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.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.subversionService = new SubversionService(extension.config.subversion)
|
||||
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.context = context(project)
|
||||
}
|
||||
@@ -331,7 +330,7 @@ class FineractPlugin implements Plugin<Project> {
|
||||
project.tasks.register("fineractReleaseStep7") {
|
||||
doFirst {
|
||||
FineractPluginExtension.FineractPluginStep step = step(extension, "step7")
|
||||
|
||||
gpgService = new GpgService(extension.config.gpg)
|
||||
gpgService.sign(step.gpg)
|
||||
|
||||
step.gpg.files.findAll {
|
||||
|
||||
@@ -73,8 +73,8 @@ class EmailService {
|
||||
if(params.bcc) {
|
||||
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(params.bcc))
|
||||
}
|
||||
msg.setSubject(params.subject)
|
||||
msg.setText(params.message);
|
||||
msg.setSubject(params.subject, "UTF-8")
|
||||
msg.setText(params.message, "UTF-8");
|
||||
|
||||
Transport.send(msg);
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ import org.apache.fineract.gradle.FineractPluginExtension
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
import java.nio.charset.Charset
|
||||
|
||||
class TemplateService {
|
||||
private static final Logger log = LoggerFactory.getLogger(TemplateService.class)
|
||||
|
||||
@@ -35,7 +37,7 @@ class TemplateService {
|
||||
TemplateService(FineractPluginExtension.FineractPluginConfigTemplate config) {
|
||||
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.setDefaultEncoding("UTF-8");
|
||||
this.config.setLogTemplateExceptions(false);
|
||||
@@ -58,7 +60,7 @@ class TemplateService {
|
||||
Template template = null;
|
||||
|
||||
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) {
|
||||
template = new Template("template", new StringReader(params.template), this.config)
|
||||
@@ -69,7 +71,7 @@ class TemplateService {
|
||||
def output = new File(params.outputFile)
|
||||
output.createNewFile()
|
||||
|
||||
template.process(data, new FileWriter(output, false))
|
||||
template.process(data, new FileWriter(output, Charset.forName("UTF-8"), false))
|
||||
} else {
|
||||
def output = new StringWriter()
|
||||
|
||||
|
||||
@@ -36,4 +36,4 @@ ${project['fineract.config.name']}
|
||||
|
||||
|
||||
|
||||
🎉 Powered by Fineract Release Plugin 🎊
|
||||
🎉 Powered by Fineract Release Plugin 🎊
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [PROPOSAL] 📦 New release ${project['fineract.release.version']}
|
||||
[FINERACT] [PROPOSAL] 📦 New release ${project['fineract.release.version']}
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [ANNOUNCE] 🔀 ${project['fineract.release.version']} release branch
|
||||
[FINERACT] [ANNOUNCE] 🔀 ${project['fineract.release.version']} release branch
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [VOTE] 🗳️ ${project['fineract.release.version']} for release
|
||||
[FINERACT] [VOTE] 🗳️ ${project['fineract.release.version']} for release
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [VOTE] [RESULT] 🧾️ ${project['fineract.release.version']} for release
|
||||
[FINERACT] [VOTE] [RESULT] 🧾️ ${project['fineract.release.version']} for release
|
||||
|
||||
@@ -40,4 +40,4 @@ https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=${project['finera
|
||||
For more information on Apache Fineract please visit
|
||||
project home page: https://fineract.apache.org
|
||||
|
||||
The Apache Fineract Team
|
||||
The Apache Fineract Team
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[ANNOUNCE] Apache Fineract ${project['fineract.release.version']} Release
|
||||
[ANNOUNCE] Apache Fineract ${project['fineract.release.version']} Release
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
Fineract ${project['fineract.release.version']} release
|
||||
Fineract ${project['fineract.release.version']} release
|
||||
|
||||
@@ -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>
|
||||
<Package name="~.*\.domain"/>
|
||||
</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>
|
||||
|
||||
+2
-2
@@ -24,9 +24,9 @@ import org.springframework.stereotype.Component;
|
||||
@Component
|
||||
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
|
||||
public String getCode() {
|
||||
|
||||
@@ -25,6 +25,12 @@ apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencie
|
||||
jib {
|
||||
from {
|
||||
image = 'azul/zulu-openjdk-alpine:17'
|
||||
platforms {
|
||||
platform {
|
||||
architecture = System.getProperty("os.arch").equals("aarch64")?"arm64":"amd64"
|
||||
os = 'linux'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
to {
|
||||
@@ -38,22 +44,6 @@ jib {
|
||||
container {
|
||||
creationTime = 'USE_CURRENT_TIMESTAMP'
|
||||
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 = [
|
||||
'-Duser.home=/tmp',
|
||||
'-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.
|
||||
#
|
||||
|
||||
version: '3.7'
|
||||
version: "3.8"
|
||||
services:
|
||||
# Frontend service
|
||||
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.
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
activemq:
|
||||
image: rmohr/activemq:5.15.9-alpine
|
||||
ports:
|
||||
- 6161:6161
|
||||
- 61616:61616
|
||||
# Backend service
|
||||
fineractpostgresql:
|
||||
image: postgres:15.3
|
||||
volumes:
|
||||
- ./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"
|
||||
extends:
|
||||
file: ./config/docker/compose/activemq.yml
|
||||
service: activemq
|
||||
|
||||
db:
|
||||
extends:
|
||||
file: ./config/docker/compose/postgresql.yml
|
||||
service: postgresql
|
||||
|
||||
fineract-manager:
|
||||
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
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
ports:
|
||||
- 8443:8443
|
||||
- "8443:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- FINERACT_NODE_ID=1
|
||||
- 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
|
||||
- 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
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-manager.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/activemq.env
|
||||
|
||||
fineract-worker:
|
||||
image: fineract:latest
|
||||
volumes:
|
||||
- ./fineract-provider/build/data:/data
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
deploy:
|
||||
mode: replicated
|
||||
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:
|
||||
- "8444-8445:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
fineract-manager:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- FINERACT_NODE_ID=2
|
||||
- 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
|
||||
- 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
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-worker.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/activemq.env
|
||||
|
||||
@@ -16,167 +16,45 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
# 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"
|
||||
db:
|
||||
extends:
|
||||
file: ./config/docker/compose/postgresql.yml
|
||||
service: postgresql
|
||||
|
||||
fineract-manager:
|
||||
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
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
ports:
|
||||
- 8443:8443
|
||||
- "8443:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- AWS_ACCESS_KEY_ID=
|
||||
- AWS_SECRET_ACCESS_KEY=
|
||||
- FINERACT_NODE_ID=1
|
||||
- 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
|
||||
- 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
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-manager.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/aws.env
|
||||
- ./config/docker/env/kafka-client-msk.env
|
||||
|
||||
fineract-worker:
|
||||
image: fineract:latest
|
||||
volumes:
|
||||
- ./fineract-provider/build/data:/data
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
deploy:
|
||||
mode: replicated
|
||||
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:
|
||||
- "8444-8445:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
fineract-manager:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- AWS_ACCESS_KEY_ID=
|
||||
- AWS_SECRET_ACCESS_KEY=
|
||||
- FINERACT_NODE_ID=1
|
||||
- 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
|
||||
- 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
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-worker.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/aws.env
|
||||
- ./config/docker/env/kafka-client-msk.env
|
||||
|
||||
@@ -17,161 +17,51 @@
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
version: "3.7"
|
||||
services:
|
||||
kafka:
|
||||
image: 'bitnami/kafka:3.5.1-debian-11-r7'
|
||||
image: "bitnami/kafka:3.5.1-debian-11-r7"
|
||||
ports:
|
||||
- '9092:9092'
|
||||
environment:
|
||||
- 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
|
||||
# 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"
|
||||
- "9092:9092"
|
||||
env_file:
|
||||
- ./config/docker/env/kafka-server.env
|
||||
|
||||
db:
|
||||
extends:
|
||||
file: ./config/docker/compose/postgresql.yml
|
||||
service: postgresql
|
||||
|
||||
fineract-manager:
|
||||
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
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
ports:
|
||||
- 8443:8443
|
||||
- "8443:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- FINERACT_NODE_ID=1
|
||||
- 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
|
||||
- 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=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
|
||||
kafka:
|
||||
condition: service_started
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-manager.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/kafka-client.env
|
||||
|
||||
fineract-worker:
|
||||
image: fineract:latest
|
||||
volumes:
|
||||
- ./fineract-provider/build/data:/data
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
deploy:
|
||||
mode: replicated
|
||||
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:
|
||||
- "8444-8445:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
fineract-manager:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- FINERACT_NODE_ID=1
|
||||
- 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
|
||||
- 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
|
||||
env_file:
|
||||
- ./config/docker/env/fineract-worker.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
- ./config/docker/env/kafka-client.env
|
||||
|
||||
@@ -16,81 +16,25 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
# Backend service
|
||||
fineractpostgresql:
|
||||
image: postgres:15.3
|
||||
volumes:
|
||||
- ./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
|
||||
|
||||
db:
|
||||
extends:
|
||||
file: ./config/docker/compose/postgresql.yml
|
||||
service: postgresql
|
||||
|
||||
fineract:
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
ports:
|
||||
- "5432:5432"
|
||||
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
|
||||
- "8443:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
# TODO: env vars prefixed with "fineract_tenants_*" will be removed with one of the next releases
|
||||
#- fineract_tenants_driver=org.postgresql.Driver
|
||||
#- fineract_tenants_url=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
||||
#- 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"
|
||||
env_file:
|
||||
- ./config/docker/env/fineract.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-postgresql.env
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
version: "3.8"
|
||||
|
||||
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", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
|
||||
db:
|
||||
extends:
|
||||
file: ./config/docker/compose/mariadb.yml
|
||||
service: mariadb
|
||||
|
||||
fineract:
|
||||
extends:
|
||||
file: ./config/docker/compose/fineract.yml
|
||||
service: fineract
|
||||
ports:
|
||||
- "3306:3306"
|
||||
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
|
||||
- "8443:8443"
|
||||
depends_on:
|
||||
fineractmysql:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
# TODO: env vars prefixed with "fineract_tenants_*" will be removed with one of the next releases
|
||||
#- fineract_tenants_driver=org.mariadb.jdbc.Driver
|
||||
#- fineract_tenants_url=jdbc:mariadb://fineractmysql:3306/fineract_tenants
|
||||
#- 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"
|
||||
env_file:
|
||||
- ./config/docker/env/fineract.env
|
||||
- ./config/docker/env/fineract-common.env
|
||||
- ./config/docker/env/fineract-mariadb.env
|
||||
|
||||
@@ -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.exception.InvalidJsonException;
|
||||
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.service.DateUtils;
|
||||
import org.apache.fineract.portfolio.loanaccount.guarantor.command.GuarantorCommand;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* Implementation of {@link FromApiJsonDeserializer} for {@link GuarantorCommand}'s.
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public final class AccrualAccountingDataValidator {
|
||||
+3
-3
@@ -70,7 +70,7 @@ public class GLClosuresApiResource {
|
||||
Arrays.asList("id", "officeId", "officeName", "closingDate", "deleted", "createdDate", "lastUpdatedDate", "createdByUserId",
|
||||
"createdByUsername", "lastUpdatedByUserId", "lastUpdatedByUsername"));
|
||||
|
||||
private final String resourceNameForPermission = "GLCLOSURE";
|
||||
private static final String RESOURCE_NAME_FOR_PERMISSION = "GLCLOSURE";
|
||||
|
||||
private final PlatformSecurityContext context;
|
||||
private final GLClosureReadPlatformService glClosureReadPlatformService;
|
||||
@@ -88,7 +88,7 @@ public class GLClosuresApiResource {
|
||||
public String retrieveAllClosures(@Context final UriInfo uriInfo,
|
||||
@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 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,
|
||||
@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());
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user