diff --git a/STATIC_WEAVING.md b/STATIC_WEAVING.md
new file mode 100644
index 000000000..ae8ba7805
--- /dev/null
+++ b/STATIC_WEAVING.md
@@ -0,0 +1,30 @@
+# Static Weaving Configuration
+
+This document explains the static weaving setup for JPA entities in the Fineract project.
+
+## Overview
+
+Static weaving is a process that enhances JPA entities at build time to improve runtime performance. This is done using the `org.eclipse.persistence.tools.weaving.jpa.StaticWeave` which processes the compiled classes and applies the necessary bytecode transformations.
+
+## Configuration
+
+The static weaving is configured in `static-weaving.gradle` and applied to all Java projects that contain JPA entities.
+
+## How It Works
+
+1. **Compilation**: Java source files are compiled to the standard classes directory (`build/classes/java/main`).
+2. **Weaving**: Weaving happens as last step of **compileJava** task, which outputs them to the standard classes directory (`build/classes/java/main`).
+
+## Adding Static Weaving to a Module
+
+1. Add JPA entities to `src/main/java`
+2. Ensure there's a `persistence.xml` file in `src/main/resources/jpa/static-weaving/module/[module-name]/`
+3. The build will automatically detect and apply static weaving
+
+## Troubleshooting
+
+If you encounter issues with static weaving:
+
+1. Check that the `persistence.xml` file exists in the correct location
+2. Verify that the output directories are being created correctly
+3. Check the build logs for any weaving-related errors
diff --git a/build.gradle b/build.gradle
index 077ad067f..2d5252c93 100644
--- a/build.gradle
+++ b/build.gradle
@@ -146,6 +146,11 @@ gitVersioning.apply {
ext['groovy.version'] = '4.0.17'
ext['swaggerFile'] = "$rootDir/fineract-provider/build/classes/java/main/static/fineract.json".toString()
+// Apply static weaving configuration to all subprojects
+subprojects { subproject ->
+ apply from: rootProject.file('static-weaving.gradle')
+}
+
allprojects {
group = 'org.apache.fineract'
@@ -406,10 +411,6 @@ configure(project.fineractJavaProjects) {
group = 'org.apache.fineract'
- /* 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
-
configurations.named('spotbugs').configure {
resolutionStrategy.eachDependency {
if (it.requested.group == 'org.ow2.asm') {
diff --git a/fineract-accounting/build.gradle b/fineract-accounting/build.gradle
index 916069b1f..9f7ab3ab4 100644
--- a/fineract-accounting/build.gradle
+++ b/fineract-accounting/build.gradle
@@ -21,23 +21,8 @@ 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
- mainClass = 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave'
- args '-persistenceinfo', source, source, target
- classpath sourceSets.main.runtimeClasspath
- }
- delete {
- delete "${source}/META-INF/persistence.xml"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
configurations {
@@ -85,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml b/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml
deleted file mode 100644
index 3e2aa1743..000000000
--- a/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
- org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
-
- org.apache.fineract.portfolio.charge.domain.Charge
- false
-
-
-
-
-
diff --git a/fineract-loan/src/main/resources/jpa/loan/persistence.xml b/fineract-accounting/src/main/resources/jpa/static-weaving/module/fineract-accounting/persistence.xml
similarity index 74%
rename from fineract-loan/src/main/resources/jpa/loan/persistence.xml
rename to fineract-accounting/src/main/resources/jpa/static-weaving/module/fineract-accounting/persistence.xml
index bb2388765..60e55ff84 100644
--- a/fineract-loan/src/main/resources/jpa/loan/persistence.xml
+++ b/fineract-accounting/src/main/resources/jpa/static-weaving/module/fineract-accounting/persistence.xml
@@ -22,56 +22,69 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
org.apache.fineract.portfolio.charge.domain.Charge
-
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
org.apache.fineract.portfolio.tax.domain.TaxComponent
org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.loanaccount.domain.LoanStatusConverter
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
false
diff --git a/fineract-branch/build.gradle b/fineract-branch/build.gradle
index 04a3b10e4..068ca03ae 100644
--- a/fineract-branch/build.gradle
+++ b/fineract-branch/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Branch'
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/branch/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-branch/src/main/resources/jpa/static-weaving/module/fineract-branch/persistence.xml b/fineract-branch/src/main/resources/jpa/static-weaving/module/fineract-branch/persistence.xml
new file mode 100644
index 000000000..5e972e532
--- /dev/null
+++ b/fineract-branch/src/main/resources/jpa/static-weaving/module/fineract-branch/persistence.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+ org.eclipse.persistence.jpa.PersistenceProvider
+
+
+ org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
+ org.apache.fineract.useradministration.domain.Permission
+ org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+
+ org.apache.fineract.organisation.teller.domain.CashierTransaction
+ org.apache.fineract.organisation.teller.domain.Teller
+ org.apache.fineract.organisation.teller.domain.Cashier
+ org.apache.fineract.organisation.teller.domain.TellerTransaction
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ false
+
+
+
+
+
diff --git a/fineract-charge/build.gradle b/fineract-charge/build.gradle
index 636fc048a..2bc9d7e29 100644
--- a/fineract-charge/build.gradle
+++ b/fineract-charge/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Charge'
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/charge/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-rates/src/main/resources/jpa/rates/persistence.xml b/fineract-charge/src/main/resources/jpa/static-weaving/module/fineract-charge/persistence.xml
similarity index 72%
rename from fineract-rates/src/main/resources/jpa/rates/persistence.xml
rename to fineract-charge/src/main/resources/jpa/static-weaving/module/fineract-charge/persistence.xml
index b76d09e1a..695790147 100644
--- a/fineract-rates/src/main/resources/jpa/rates/persistence.xml
+++ b/fineract-charge/src/main/resources/jpa/static-weaving/module/fineract-charge/persistence.xml
@@ -22,54 +22,69 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
org.apache.fineract.portfolio.charge.domain.Charge
+
false
diff --git a/fineract-command/dependencies.gradle b/fineract-command/dependencies.gradle
index 8186f1181..5d914cfe8 100644
--- a/fineract-command/dependencies.gradle
+++ b/fineract-command/dependencies.gradle
@@ -41,7 +41,9 @@ dependencies {
'com.ibm.icu:icu4j',
'org.yakworks:spring-icu4j',
)
-
+ implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
+ exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
+ }
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
annotationProcessor 'org.mapstruct:mapstruct-processor'
diff --git a/fineract-command/src/main/java/org/apache/fineract/command/persistence/CommandRepository.java b/fineract-command/src/main/java/org/apache/fineract/command/persistence/CommandRepository.java
index 98e4b3bd0..3b261553f 100644
--- a/fineract-command/src/main/java/org/apache/fineract/command/persistence/CommandRepository.java
+++ b/fineract-command/src/main/java/org/apache/fineract/command/persistence/CommandRepository.java
@@ -18,7 +18,7 @@
*/
package org.apache.fineract.command.persistence;
-import org.apache.fineract.command.persistence.model.CommandEntity;
+import org.apache.fineract.command.persistence.domain.CommandEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
diff --git a/fineract-command/src/main/java/org/apache/fineract/command/persistence/model/CommandEntity.java b/fineract-command/src/main/java/org/apache/fineract/command/persistence/domain/CommandEntity.java
similarity index 97%
rename from fineract-command/src/main/java/org/apache/fineract/command/persistence/model/CommandEntity.java
rename to fineract-command/src/main/java/org/apache/fineract/command/persistence/domain/CommandEntity.java
index 06b78eec7..e7d5e4e86 100644
--- a/fineract-command/src/main/java/org/apache/fineract/command/persistence/model/CommandEntity.java
+++ b/fineract-command/src/main/java/org/apache/fineract/command/persistence/domain/CommandEntity.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.command.persistence.model;
+package org.apache.fineract.command.persistence.domain;
import com.fasterxml.jackson.databind.JsonNode;
import jakarta.persistence.Column;
diff --git a/fineract-command/src/main/java/org/apache/fineract/command/persistence/mapping/CommandMapper.java b/fineract-command/src/main/java/org/apache/fineract/command/persistence/mapping/CommandMapper.java
index 45487722d..31a2c4351 100644
--- a/fineract-command/src/main/java/org/apache/fineract/command/persistence/mapping/CommandMapper.java
+++ b/fineract-command/src/main/java/org/apache/fineract/command/persistence/mapping/CommandMapper.java
@@ -22,7 +22,7 @@ import static org.mapstruct.InjectionStrategy.CONSTRUCTOR;
import static org.mapstruct.MappingConstants.ComponentModel.SPRING;
import org.apache.fineract.command.core.Command;
-import org.apache.fineract.command.persistence.model.CommandEntity;
+import org.apache.fineract.command.persistence.domain.CommandEntity;
import org.mapstruct.InheritInverseConfiguration;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
diff --git a/fineract-core/src/main/resources/jpa/core/persistence.xml b/fineract-command/src/main/resources/jpa/static-weaving/module/fineract-command/persistence.xml
similarity index 74%
rename from fineract-core/src/main/resources/jpa/core/persistence.xml
rename to fineract-command/src/main/resources/jpa/static-weaving/module/fineract-command/persistence.xml
index 105688157..465ba382f 100644
--- a/fineract-core/src/main/resources/jpa/core/persistence.xml
+++ b/fineract-command/src/main/resources/jpa/static-weaving/module/fineract-command/persistence.xml
@@ -22,13 +22,19 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
+
+
+ org.apache.fineract.command.persistence.domain.CommandEntity
+ org.apache.fineract.command.persistence.converter.JsonAttributeConverter
+
false
diff --git a/fineract-core/build.gradle b/fineract-core/build.gradle
index c05ff7288..1a7d533af 100644
--- a/fineract-core/build.gradle
+++ b/fineract-core/build.gradle
@@ -21,25 +21,6 @@ description = 'Fineract Core'
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/core/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
@@ -64,7 +45,7 @@ configurations {
apply from: 'dependencies.gradle'
compileJava {
- dependsOn ':fineract-avro-schemas:jar'
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
options.compilerArgs += ['-parameters']
}
diff --git a/fineract-charge/src/main/resources/jpa/charge/persistence.xml b/fineract-core/src/main/resources/jpa/static-weaving/module/fineract-core/persistence.xml
similarity index 75%
rename from fineract-charge/src/main/resources/jpa/charge/persistence.xml
rename to fineract-core/src/main/resources/jpa/static-weaving/module/fineract-core/persistence.xml
index 9d04d96a0..aeb8e6522 100644
--- a/fineract-charge/src/main/resources/jpa/charge/persistence.xml
+++ b/fineract-core/src/main/resources/jpa/static-weaving/module/fineract-core/persistence.xml
@@ -22,53 +22,51 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
false
diff --git a/fineract-document/build.gradle b/fineract-document/build.gradle
index 6eeb13ada..37ddda8ab 100644
--- a/fineract-document/build.gradle
+++ b/fineract-document/build.gradle
@@ -21,23 +21,8 @@ description = 'Fineract Document'
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/document/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, '-classpath', sourceSets.main.runtimeClasspath, source, target
- classpath sourceSets.main.runtimeClasspath
- }
- delete {
- delete "${source}/META-INF/persistence.xml"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
configurations {
diff --git a/fineract-branch/src/main/resources/jpa/branch/persistence.xml b/fineract-document/src/main/resources/jpa/static-weaving/module/fineract-document/persistence.xml
similarity index 75%
rename from fineract-branch/src/main/resources/jpa/branch/persistence.xml
rename to fineract-document/src/main/resources/jpa/static-weaving/module/fineract-document/persistence.xml
index ef4086d55..7b0325007 100644
--- a/fineract-branch/src/main/resources/jpa/branch/persistence.xml
+++ b/fineract-document/src/main/resources/jpa/static-weaving/module/fineract-document/persistence.xml
@@ -22,53 +22,54 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.charge.domain.Charge
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.infrastructure.documentmanagement.domain.Document
+
false
diff --git a/fineract-investor/build.gradle b/fineract-investor/build.gradle
index 22187772f..29c9846ff 100644
--- a/fineract-investor/build.gradle
+++ b/fineract-investor/build.gradle
@@ -21,23 +21,8 @@ description = 'Fineract Investor'
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/investor/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
configurations {
@@ -85,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-provider/src/main/resources/jpa/persistence.xml b/fineract-investor/src/main/resources/jpa/static-weaving/module/fineract-investor/persistence.xml
similarity index 72%
rename from fineract-provider/src/main/resources/jpa/persistence.xml
rename to fineract-investor/src/main/resources/jpa/static-weaving/module/fineract-investor/persistence.xml
index eba5ded16..656e3f3ea 100644
--- a/fineract-provider/src/main/resources/jpa/persistence.xml
+++ b/fineract-investor/src/main/resources/jpa/static-weaving/module/fineract-investor/persistence.xml
@@ -22,59 +22,76 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
+
+
+ org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.staff.domain.Staff
org.apache.fineract.organisation.workingdays.domain.WorkingDays
+ org.apache.fineract.useradministration.domain.Permission
+ org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
org.apache.fineract.portfolio.calendar.domain.Calendar
org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.portfolio.client.domain.Client
org.apache.fineract.portfolio.client.domain.ClientIdentifier
org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.GroupRole
org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.useradministration.domain.AppUser
- org.apache.fineract.useradministration.domain.AppUserClientMapping
- org.apache.fineract.useradministration.domain.Permission
- org.apache.fineract.useradministration.domain.Role
-
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+
org.apache.fineract.investor.domain.ExternalAssetOwner
- org.apache.fineract.investor.domain.ExternalAssetOwnerJournalEntryMapping
+ org.apache.fineract.investor.domain.ExternalAssetOwnerLoanProductAttributes
org.apache.fineract.investor.domain.ExternalAssetOwnerTransfer
org.apache.fineract.investor.domain.ExternalAssetOwnerTransferDetails
org.apache.fineract.investor.domain.ExternalAssetOwnerTransferJournalEntryMapping
org.apache.fineract.investor.domain.ExternalAssetOwnerTransferLoanMapping
-
- org.apache.fineract.portfolio.collateral.domain.LoanCollateral
- org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
- org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.investor.domain.ExternalAssetOwnerJournalEntryMapping
+
+
+ org.apache.fineract.investor.domain.ExternalIdConverter
+
+
org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketMappings
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyTagHistory
@@ -85,7 +102,6 @@
org.apache.fineract.portfolio.loanaccount.domain.LoanChargePaidBy
org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement
org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule
- org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule
org.apache.fineract.portfolio.loanaccount.domain.LoanDisbursementDetails
org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge
org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalcualtionAdditionalDetails
@@ -104,13 +120,8 @@
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping
org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
- org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
+ org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanRepaymentScheduleHistory
org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
- org.apache.fineract.portfolio.loanproduct.domain.AllocationType
- org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter
- org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType
- org.apache.fineract.portfolio.loanproduct.domain.DueType
- org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule
org.apache.fineract.portfolio.loanproduct.domain.LoanProduct
org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations
org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes
@@ -120,48 +131,30 @@
org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails
org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule
org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType
+ org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
+ org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
+ org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.portfolio.collateral.domain.LoanCollateral
+
+
+ org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter
+ org.apache.fineract.portfolio.loanaccount.domain.AccountingRuleTypeConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanSubStatusConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTypeConverter
org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter
org.apache.fineract.portfolio.loanproduct.domain.SupportedInterestRefundTypesListConverter
- org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
org.apache.fineract.portfolio.loanaccount.domain.LoanStatusConverter
-
- org.apache.fineract.interoperation.domain.InteropIdentifier
- org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives
- org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart
- org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab
- org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives
- org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart
- org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs
- org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction
- org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure
- org.apache.fineract.portfolio.savings.domain.DepositProductRecurringDetail
- org.apache.fineract.portfolio.savings.domain.DepositProductTermAndPreClosure
- org.apache.fineract.portfolio.savings.domain.FixedDepositAccount
- org.apache.fineract.portfolio.savings.domain.FixedDepositProduct
- org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring
- org.apache.fineract.portfolio.savings.domain.RecurringDepositAccount
- org.apache.fineract.portfolio.savings.domain.RecurringDepositProduct
- org.apache.fineract.portfolio.savings.domain.SavingsAccount
- org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge
- org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy
- org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction
- org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails
- org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory
- org.apache.fineract.portfolio.savings.domain.SavingsProduct
-
- org.apache.fineract.accounting.rule.domain.AccountingRule
- org.apache.fineract.accounting.rule.domain.AccountingTagRule
-
- org.apache.fineract.infrastructure.documentmanagement.domain.Document
-
- org.apache.fineract.portfolio.charge.domain.Charge
-
+
+
org.apache.fineract.portfolio.tax.domain.TaxComponent
org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
org.apache.fineract.portfolio.tax.domain.TaxGroup
org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
false
diff --git a/fineract-loan/build.gradle b/fineract-loan/build.gradle
index 33b087faf..38821283d 100644
--- a/fineract-loan/build.gradle
+++ b/fineract-loan/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Loan'
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/loan/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml b/fineract-loan/src/main/resources/jpa/static-weaving/module/fineract-loan/persistence.xml
similarity index 86%
rename from fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml
rename to fineract-loan/src/main/resources/jpa/static-weaving/module/fineract-loan/persistence.xml
index a5ff252eb..0a8b7e2fe 100644
--- a/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml
+++ b/fineract-loan/src/main/resources/jpa/static-weaving/module/fineract-loan/persistence.xml
@@ -22,57 +22,68 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.collateral.domain.LoanCollateral
- org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
- org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+
org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketMappings
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyTagHistory
org.apache.fineract.portfolio.delinquency.domain.LoanInstallmentDelinquencyTag
- org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount
org.apache.fineract.portfolio.loanaccount.domain.Loan
org.apache.fineract.portfolio.loanaccount.domain.LoanCharge
@@ -96,6 +107,9 @@
org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping
+ org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
+ org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanRepaymentScheduleHistory
+ org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
org.apache.fineract.portfolio.loanproduct.domain.LoanProduct
org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations
org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes
@@ -105,35 +119,31 @@
org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails
org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule
org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType
- org.apache.fineract.portfolio.loanproduct.domain.DueType
- org.apache.fineract.portfolio.loanproduct.domain.AllocationType
- org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType
+ org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
+ org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
+ org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.portfolio.collateral.domain.LoanCollateral
+
+
org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter
- org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule
- org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType
+ org.apache.fineract.portfolio.loanaccount.domain.AccountingRuleTypeConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanSubStatusConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTypeConverter
org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter
org.apache.fineract.portfolio.loanproduct.domain.SupportedInterestRefundTypesListConverter
- org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
- org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
- org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
org.apache.fineract.portfolio.loanaccount.domain.LoanStatusConverter
-
- org.apache.fineract.portfolio.charge.domain.Charge
-
- org.apache.fineract.accounting.closure.domain.GLClosure
- org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
- org.apache.fineract.accounting.rule.domain.AccountingRule
- org.apache.fineract.accounting.rule.domain.AccountingTagRule
-
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
org.apache.fineract.portfolio.tax.domain.TaxComponent
org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
+
false
diff --git a/fineract-progressive-loan/build.gradle b/fineract-progressive-loan/build.gradle
index 20e9f20b4..58969916d 100644
--- a/fineract-progressive-loan/build.gradle
+++ b/fineract-progressive-loan/build.gradle
@@ -21,23 +21,8 @@ description = 'Fineract Progressive Loan'
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/progressiveloan/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
configurations {
@@ -85,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-investor/src/main/resources/jpa/investor/persistence.xml b/fineract-progressive-loan/src/main/resources/jpa/static-weaving/module/fineract-progressive-loan/persistence.xml
similarity index 81%
rename from fineract-investor/src/main/resources/jpa/investor/persistence.xml
rename to fineract-progressive-loan/src/main/resources/jpa/static-weaving/module/fineract-progressive-loan/persistence.xml
index e2d5a0b00..9020127fa 100644
--- a/fineract-investor/src/main/resources/jpa/investor/persistence.xml
+++ b/fineract-progressive-loan/src/main/resources/jpa/static-weaving/module/fineract-progressive-loan/persistence.xml
@@ -22,61 +22,68 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.charge.domain.Charge
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.collateral.domain.LoanCollateral
- org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
- org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+
org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketMappings
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction
org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyTagHistory
org.apache.fineract.portfolio.delinquency.domain.LoanInstallmentDelinquencyTag
- org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount
org.apache.fineract.portfolio.loanaccount.domain.Loan
org.apache.fineract.portfolio.loanaccount.domain.LoanCharge
@@ -100,6 +107,9 @@
org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping
+ org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
+ org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanRepaymentScheduleHistory
+ org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
org.apache.fineract.portfolio.loanproduct.domain.LoanProduct
org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations
org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes
@@ -109,20 +119,33 @@
org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails
org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule
org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType
- org.apache.fineract.portfolio.loanproduct.domain.DueType
- org.apache.fineract.portfolio.loanproduct.domain.AllocationType
- org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule
- org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType
+ org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
+ org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
+ org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.portfolio.collateral.domain.LoanCollateral
+
+
org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter
- org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule
- org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType
+ org.apache.fineract.portfolio.loanaccount.domain.AccountingRuleTypeConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanSubStatusConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTypeConverter
org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter
org.apache.fineract.portfolio.loanproduct.domain.SupportedInterestRefundTypesListConverter
- org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
- org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
- org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
org.apache.fineract.portfolio.loanaccount.domain.LoanStatusConverter
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
+
+ org.apache.fineract.portfolio.loanaccount.domain.LoanCapitalizedIncomeBalance
+ org.apache.fineract.portfolio.loanaccount.domain.ProgressiveLoanModel
false
diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle
index 9606ce545..c13a1865d 100644
--- a/fineract-provider/build.gradle
+++ b/fineract-provider/build.gradle
@@ -30,30 +30,19 @@ apply plugin: 'se.thinkcode.cucumber-runner'
check.dependsOn('cucumber')
-compileJava.doLast {
- def mainSS = sourceSets.main
- def source = mainSS.java.classesDirectory.get()
- copy {
- from file("src/main/resources/jpa/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"
- }
+// Static weaving is now configured in gradle/static-weaving.gradle
+// This ensures consistent configuration across all modules with JPA entities
+
+// Add dependency on avro schemas
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
// Configuration for Swagger documentation generation task
// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
import org.apache.tools.ant.filters.ReplaceTokens
-task prepareInputYaml {
+tasks.register('prepareInputYaml') {
outputs.file("${buildDir}/tmp/swagger/fineract-input.yaml")
doLast {
@@ -139,10 +128,6 @@ eclipse {
}
}
-/* 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 {
@@ -176,57 +161,57 @@ configurations.driver.each {File file ->
loader.addURL(file.toURL())
}
-task createDB {
- description= "Creates the MariaDB Database. Needs database name to be passed (like: -PdbName=someDBname)"
+tasks.register('createDB') {
+ description = "Creates the MariaDB Database. Needs database name to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' )
- sql.execute( 'CREATE DATABASE '+"`$dbName` CHARACTER SET utf8mb4" )
+ def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver')
+ sql.execute('CREATE DATABASE ' + "`$dbName` CHARACTER SET utf8mb4")
}
}
-task dropDB {
- description= "Drops the specified MariaDB database. The database name has to be passed (like: -PdbName=someDBname)"
+tasks.register('dropDB') {
+ description = "Drops the specified MariaDB database. The database name has to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' )
- sql.execute( 'DROP DATABASE '+"`$dbName`")
+ def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver')
+ sql.execute('DROP DATABASE ' + "`$dbName`")
}
}
-task createPGDB {
- description= "Creates the PostgreSQL Database. Needs database name to be passed (like: -PdbName=someDBname)"
+tasks.register('createPGDB') {
+ description = "Creates the PostgreSQL Database. Needs database name to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver' )
- sql.execute( 'create database '+"$dbName" )
+ def sql = Sql.newInstance('jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver')
+ sql.execute('create database ' + "$dbName")
}
}
-task dropPGDB {
- description= "Drops the specified PostgreSQL database. The database name has to be passed (like: -PdbName=someDBname)"
+tasks.register('dropPGDB') {
+ description = "Drops the specified PostgreSQL database. The database name has to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver' )
- sql.execute( 'DROP DATABASE '+ "$dbName")
+ def sql = Sql.newInstance('jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver')
+ sql.execute('DROP DATABASE ' + "$dbName")
}
}
-task createMySQLDB {
- description= "Creates the MySQL Database. Needs database name to be passed (like: -PdbName=someDBname)"
+tasks.register('createMySQLDB') {
+ description = "Creates the MySQL Database. Needs database name to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver' )
- sql.execute( 'CREATE DATABASE '+"`$dbName` CHARACTER SET utf8mb4" )
+ def sql = Sql.newInstance('jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver')
+ sql.execute('CREATE DATABASE ' + "`$dbName` CHARACTER SET utf8mb4")
}
}
-task dropMySQLDB {
- description= "Drops the specified MySQL database. The database name has to be passed (like: -PdbName=someDBname)"
+tasks.register('dropMySQLDB') {
+ description = "Drops the specified MySQL database. The database name has to be passed (like: -PdbName=someDBname)"
doLast {
- def sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver' )
- sql.execute( 'DROP DATABASE '+"`$dbName`")
+ def sql = Sql.newInstance('jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver')
+ sql.execute('DROP DATABASE ' + "`$dbName`")
}
}
-task setBlankPassword {
+tasks.register('setBlankPassword') {
doLast {
- def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' )
+ def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver')
sql.execute('USE `fineract_tenants`')
sql.execute('UPDATE fineract_tenants.tenants SET schema_server = \'localhost\', schema_server_port = \'3306\', schema_username = \'mifos\', schema_password = \'mysql\' WHERE id=1;')
}
@@ -234,7 +219,7 @@ task setBlankPassword {
bootRun {
jvmArgs = [
- "-Dspring.output.ansi.enabled=ALWAYS"
+ "-Dspring.output.ansi.enabled=ALWAYS"
]
dependencies {
@@ -290,6 +275,15 @@ jib {
user = 'nobody:nogroup'
}
+ extraDirectories {
+ paths {
+ path {
+ from = layout.buildDirectory.dir("resources/main").get().asFile
+ into = '/app/classes'
+ }
+ }
+ }
+
allowInsecureRegistries = true
dependencies {
@@ -311,12 +305,12 @@ jib {
}
}
-task migrateDatabase {
+tasks.register('migrateDatabase') {
doFirst {
- println 'Executing liquibase database migration to version '+"$dbVersion"
+ println 'Executing liquibase database migration to version ' + "$dbVersion"
- def dbUrl='jdbc:'+"$dbType"+'://'+"$dbHost"+':'+"$dbPort"+'/'+"$dbName"
- def changeLogFilePath='fineract-provider/src/main/resources/db/changelog/tenant/upgrades/0000_upgrade_to_'+"$dbVersion"+'.xml'
+ def dbUrl = 'jdbc:' + "$dbType" + '://' + "$dbHost" + ':' + "$dbPort" + '/' + "$dbName"
+ def changeLogFilePath = 'fineract-provider/src/main/resources/db/changelog/tenant/upgrades/0000_upgrade_to_' + "$dbVersion" + '.xml'
liquibase {
activities {
@@ -372,20 +366,20 @@ javadoc {
dependsOn resolve
}
-task devRun(type: org.springframework.boot.gradle.tasks.run.BootRun) {
+tasks.register('devRun', org.springframework.boot.gradle.tasks.run.BootRun) {
description = 'Runs the application quickly for development by skipping quality checks'
group = 'Application'
// Configure the build to skip quality checks
gradle.taskGraph.whenReady { graph ->
if (graph.hasTask(devRun)) {
- tasks.matching { task ->
+ tasks.matching { task ->
task.name in ['checkstyle', 'checkstyleMain', 'checkstyleTest',
- 'spotlessCheck', 'spotlessApply',
- 'spotbugsMain', 'spotbugsTest',
- 'javadoc', 'javadocJar',
- 'modernizer',
- 'testClasses']
+ 'spotlessCheck', 'spotlessApply',
+ 'spotbugsMain', 'spotbugsTest',
+ 'javadoc', 'javadocJar',
+ 'modernizer',
+ 'testClasses']
}.configureEach {
enabled = false
}
@@ -400,7 +394,7 @@ task devRun(type: org.springframework.boot.gradle.tasks.run.BootRun) {
classpath = bootRun.classpath
mainClass = bootRun.mainClass
jvmArgs = bootRun.jvmArgs
-
+
doFirst {
println "Running in development mode - quality checks are disabled"
}
diff --git a/fineract-provider/src/main/resources/jpa/static-weaving/module/fineract-provider/persistence.xml b/fineract-provider/src/main/resources/jpa/static-weaving/module/fineract-provider/persistence.xml
new file mode 100644
index 000000000..7c7b5dd9c
--- /dev/null
+++ b/fineract-provider/src/main/resources/jpa/static-weaving/module/fineract-provider/persistence.xml
@@ -0,0 +1,375 @@
+
+
+
+
+
+
+
+
+
+ org.eclipse.persistence.jpa.PersistenceProvider
+
+
+ org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
+ org.apache.fineract.useradministration.domain.Permission
+ org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+ org.apache.fineract.infrastructure.creditbureau.domain.CreditBureauToken
+ org.apache.fineract.infrastructure.creditbureau.domain.CreditReport
+ org.apache.fineract.infrastructure.creditbureau.domain.CreditBureau
+ org.apache.fineract.infrastructure.creditbureau.domain.CreditBureauLoanProductMapping
+ org.apache.fineract.infrastructure.creditbureau.domain.CreditBureauConfiguration
+ org.apache.fineract.infrastructure.creditbureau.domain.OrganisationCreditBureau
+
+
+ org.apache.fineract.infrastructure.configuration.domain.ExternalService
+ org.apache.fineract.infrastructure.configuration.domain.GlobalConfigurationProperty
+ org.apache.fineract.infrastructure.configuration.domain.ExternalServicesProperties
+
+
+ org.apache.fineract.infrastructure.bulkimport.domain.ImportDocument
+
+
+ org.apache.fineract.infrastructure.survey.domain.Likelihood
+
+
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityRelation
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityToEntityMapping
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityAccess
+
+
+ org.apache.fineract.infrastructure.sms.domain.SmsMessage
+ org.apache.fineract.infrastructure.campaigns.sms.domain.SmsCampaign
+
+
+ org.apache.fineract.infrastructure.security.domain.TFAccessToken
+ org.apache.fineract.infrastructure.security.domain.TwoFactorConfiguration
+
+
+ org.apache.fineract.infrastructure.campaigns.email.domain.EmailCampaign
+ org.apache.fineract.infrastructure.campaigns.email.domain.EmailConfiguration
+ org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessage
+
+
+ org.apache.fineract.infrastructure.accountnumberformat.domain.AccountNumberFormat
+
+
+ org.apache.fineract.portfolio.client.domain.ClientFamilyMembers
+ org.apache.fineract.portfolio.client.domain.ClientNonPerson
+ org.apache.fineract.portfolio.client.domain.ClientTransferDetails
+ org.apache.fineract.portfolio.client.domain.ClientAddress
+ org.apache.fineract.portfolio.client.domain.ClientCharge
+ org.apache.fineract.portfolio.client.domain.ClientTransaction
+ org.apache.fineract.portfolio.client.domain.ClientChargePaidBy
+
+
+ org.apache.fineract.portfolio.meeting.domain.Meeting
+ org.apache.fineract.portfolio.meeting.attendance.domain.ClientAttendance
+
+
+ org.apache.fineract.infrastructure.hooks.domain.Hook
+ org.apache.fineract.infrastructure.hooks.domain.HookResource
+ org.apache.fineract.infrastructure.hooks.domain.HookTemplate
+ org.apache.fineract.infrastructure.hooks.domain.Schema
+ org.apache.fineract.infrastructure.hooks.domain.HookConfiguration
+
+
+ org.apache.fineract.portfolio.address.domain.FieldConfiguration
+ org.apache.fineract.portfolio.address.domain.Address
+
+
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityRelation
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityToEntityMapping
+ org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityAccess
+
+
+ org.apache.fineract.portfolio.self.account.domain.SelfBeneficiariesTPT
+ org.apache.fineract.portfolio.self.device.domain.DeviceRegistration
+ org.apache.fineract.portfolio.self.pockets.domain.Pocket
+ org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMapping
+ org.apache.fineract.portfolio.self.registration.domain.SelfServiceRegistration
+
+
+
+ org.apache.fineract.command.persistence.domain.CommandEntity
+ org.apache.fineract.command.persistence.converter.JsonAttributeConverter
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+
+ org.apache.fineract.organisation.teller.domain.CashierTransaction
+ org.apache.fineract.organisation.teller.domain.Teller
+ org.apache.fineract.organisation.teller.domain.Cashier
+ org.apache.fineract.organisation.teller.domain.TellerTransaction
+
+
+ org.apache.fineract.investor.domain.ExternalAssetOwner
+ org.apache.fineract.investor.domain.ExternalAssetOwnerLoanProductAttributes
+ org.apache.fineract.investor.domain.ExternalAssetOwnerTransfer
+ org.apache.fineract.investor.domain.ExternalAssetOwnerTransferDetails
+ org.apache.fineract.investor.domain.ExternalAssetOwnerTransferJournalEntryMapping
+ org.apache.fineract.investor.domain.ExternalAssetOwnerTransferLoanMapping
+ org.apache.fineract.investor.domain.ExternalAssetOwnerJournalEntryMapping
+
+
+ org.apache.fineract.investor.domain.ExternalIdConverter
+
+
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketMappings
+ org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyAction
+ org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyTagHistory
+ org.apache.fineract.portfolio.delinquency.domain.LoanInstallmentDelinquencyTag
+ org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount
+ org.apache.fineract.portfolio.loanaccount.domain.Loan
+ org.apache.fineract.portfolio.loanaccount.domain.LoanCharge
+ org.apache.fineract.portfolio.loanaccount.domain.LoanChargePaidBy
+ org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement
+ org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule
+ org.apache.fineract.portfolio.loanaccount.domain.LoanDisbursementDetails
+ org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge
+ org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalcualtionAdditionalDetails
+ org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalculationDetails
+ org.apache.fineract.portfolio.loanaccount.domain.LoanOfficerAssignmentHistory
+ org.apache.fineract.portfolio.loanaccount.domain.LoanOverdueInstallmentCharge
+ org.apache.fineract.portfolio.loanaccount.domain.LoanPaymentAllocationRule
+ org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment
+ org.apache.fineract.portfolio.loanaccount.domain.LoanRescheduleRequestToTermVariationMapping
+ org.apache.fineract.portfolio.loanaccount.domain.LoanStatusChangeHistory
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariations
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTopupDetails
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheCharge
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping
+ org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter
+ org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanRepaymentScheduleHistory
+ org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanRescheduleRequest
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProduct
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductCreditAllocationRule
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductFloatingRates
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductGuaranteeDetails
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule
+ org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig
+ org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks
+ org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement
+ org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain
+ org.apache.fineract.portfolio.collateral.domain.LoanCollateral
+
+
+ org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter
+ org.apache.fineract.portfolio.loanaccount.domain.AccountingRuleTypeConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanSubStatusConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionTypeConverter
+ org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter
+ org.apache.fineract.portfolio.loanproduct.domain.SupportedInterestRefundTypesListConverter
+ org.apache.fineract.portfolio.loanaccount.domain.LoanStatusConverter
+
+
+ org.apache.fineract.infrastructure.documentmanagement.domain.Document
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
+
+ org.apache.fineract.interoperation.domain.InteropIdentifier
+ org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives
+ org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart
+ org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentive
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs
+ org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction
+ org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure
+ org.apache.fineract.portfolio.savings.domain.DepositProductRecurringDetail
+ org.apache.fineract.portfolio.savings.domain.DepositProductTermAndPreClosure
+ org.apache.fineract.portfolio.savings.domain.FixedDepositProduct
+ org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring
+ org.apache.fineract.portfolio.savings.domain.RecurringDepositProduct
+ org.apache.fineract.portfolio.savings.domain.SavingsAccount
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails
+ org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory
+ org.apache.fineract.portfolio.savings.domain.SavingsProduct
+
+
+ org.apache.fineract.portfolio.loanaccount.domain.LoanCapitalizedIncomeBalance
+ org.apache.fineract.portfolio.loanaccount.domain.ProgressiveLoanModel
+
+
+ org.apache.fineract.portfolio.account.domain.AccountAssociations
+ org.apache.fineract.portfolio.account.domain.AccountTransferDetails
+ org.apache.fineract.portfolio.account.domain.AccountTransferStandingInstruction
+ org.apache.fineract.portfolio.account.domain.AccountTransferTransaction
+
+
+
+ org.apache.fineract.notification.domain.NotificationMapper
+ org.apache.fineract.notification.domain.Notification
+
+
+ org.apache.fineract.adhocquery.domain.AdHoc
+
+
+ org.apache.fineract.mix.domain.MixTaxonomyMapping
+
+
+ org.apache.fineract.cob.domain.LoanAccountLock
+ org.apache.fineract.cob.domain.BatchBusinessStep
+
+
+ org.apache.fineract.template.domain.Template
+ org.apache.fineract.template.domain.TemplateMapper
+
+
+ org.apache.fineract.accounting.provisioning.domain.LoanProductProvisioningEntry
+ org.apache.fineract.accounting.provisioning.domain.ProvisioningEntry
+
+
+ org.apache.fineract.useradministration.domain.AppUserPreviousPassword
+ org.apache.fineract.useradministration.domain.PasswordValidationPolicy
+
+
+ org.apache.fineract.spm.domain.Question
+ org.apache.fineract.spm.domain.LookupTable
+ org.apache.fineract.spm.domain.Component
+ org.apache.fineract.spm.domain.Scorecard
+ org.apache.fineract.spm.domain.Survey
+ org.apache.fineract.spm.domain.Response
+
+
+ org.apache.fineract.portfolio.loanproduct.productmix.domain.ProductMix
+
+
+ org.apache.fineract.organisation.provisioning.domain.ProvisioningCriteria
+ org.apache.fineract.organisation.provisioning.domain.LoanProductProvisionCriteria
+ org.apache.fineract.organisation.provisioning.domain.ProvisioningCriteriaDefinition
+ org.apache.fineract.organisation.provisioning.domain.ProvisioningCategory
+
+
+ org.apache.fineract.organisation.office.domain.OfficeTransaction
+
+
+ org.apache.fineract.portfolio.self.registration.domain.SelfServiceRegistration
+
+
+ org.apache.fineract.portfolio.note.domain.Note
+
+
+ org.apache.fineract.portfolio.savings.domain.RecurringDepositScheduleInstallment
+ org.apache.fineract.portfolio.savings.domain.FixedDepositAccount
+ org.apache.fineract.portfolio.savings.domain.RecurringDepositAccount
+ org.apache.fineract.portfolio.savings.domain.DepositAccountRecurringDetail
+
+
+ org.apache.fineract.portfolio.shareproducts.domain.ShareProductDividendPayOutDetails
+ org.apache.fineract.portfolio.shareproducts.domain.ShareProduct
+ org.apache.fineract.portfolio.shareproducts.domain.ShareProductMarketPrice
+
+
+ org.apache.fineract.portfolio.shareaccounts.domain.ShareAccount
+ org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountCharge
+ org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountChargePaidBy
+ org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendDetails
+ org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountTransaction
+
+
+ org.apache.fineract.infrastructure.reportmailingjob.domain.ReportMailingJob
+ org.apache.fineract.infrastructure.reportmailingjob.domain.ReportMailingJobConfiguration
+ org.apache.fineract.infrastructure.reportmailingjob.domain.ReportMailingJobRunHistory
+
+
+ org.apache.fineract.infrastructure.dataqueries.domain.RegisteredDatatable
+ org.apache.fineract.infrastructure.dataqueries.domain.Report
+ org.apache.fineract.infrastructure.dataqueries.domain.ReportParameterUsage
+ org.apache.fineract.infrastructure.dataqueries.domain.ReportParameter
+ org.apache.fineract.infrastructure.dataqueries.domain.EntityDatatableChecks
+
+
+ org.apache.fineract.portfolio.loanaccount.guarantor.domain.GuarantorFundingDetails
+ org.apache.fineract.portfolio.loanaccount.guarantor.domain.GuarantorFundingTransaction
+ org.apache.fineract.portfolio.loanaccount.guarantor.domain.Guarantor
+
+ false
+
+
+
+
+
diff --git a/fineract-rates/build.gradle b/fineract-rates/build.gradle
index 279cd9d99..dfd595ac6 100644
--- a/fineract-rates/build.gradle
+++ b/fineract-rates/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Rates'
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/rates/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-tax/src/main/resources/jpa/taxes/persistence.xml b/fineract-rates/src/main/resources/jpa/static-weaving/module/fineract-rates/persistence.xml
similarity index 80%
rename from fineract-tax/src/main/resources/jpa/taxes/persistence.xml
rename to fineract-rates/src/main/resources/jpa/static-weaving/module/fineract-rates/persistence.xml
index d3ba0d405..f6aa61581 100644
--- a/fineract-tax/src/main/resources/jpa/taxes/persistence.xml
+++ b/fineract-rates/src/main/resources/jpa/static-weaving/module/fineract-rates/persistence.xml
@@ -22,52 +22,55 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
false
diff --git a/fineract-report/build.gradle b/fineract-report/build.gradle
index f7239ebd4..b3e50678f 100644
--- a/fineract-report/build.gradle
+++ b/fineract-report/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Report'
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/report/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-document/src/main/resources/jpa/document/persistence.xml b/fineract-report/src/main/resources/jpa/static-weaving/module/fineract-report/persistence.xml
similarity index 75%
rename from fineract-document/src/main/resources/jpa/document/persistence.xml
rename to fineract-report/src/main/resources/jpa/static-weaving/module/fineract-report/persistence.xml
index 0c3e741c3..aeb8e6522 100644
--- a/fineract-document/src/main/resources/jpa/document/persistence.xml
+++ b/fineract-report/src/main/resources/jpa/static-weaving/module/fineract-report/persistence.xml
@@ -22,49 +22,51 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.charge.domain.Charge
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
false
diff --git a/fineract-savings/build.gradle b/fineract-savings/build.gradle
index df6fa6f3a..c4dd74560 100644
--- a/fineract-savings/build.gradle
+++ b/fineract-savings/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Savings'
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/savings/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-savings/src/main/resources/jpa/savings/persistence.xml b/fineract-savings/src/main/resources/jpa/savings/persistence.xml
deleted file mode 100644
index fcd1b4aa3..000000000
--- a/fineract-savings/src/main/resources/jpa/savings/persistence.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-
-
-
-
-
- org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
- org.apache.fineract.useradministration.domain.Role
- org.apache.fineract.useradministration.domain.Permission
- org.apache.fineract.useradministration.domain.AppUserClientMapping
-
- org.apache.fineract.portfolio.charge.domain.Charge
-
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- false
-
-
-
-
-
diff --git a/fineract-savings/src/main/resources/jpa/static-weaving/module/fineract-savings/persistence.xml b/fineract-savings/src/main/resources/jpa/static-weaving/module/fineract-savings/persistence.xml
new file mode 100644
index 000000000..1e6e6db5b
--- /dev/null
+++ b/fineract-savings/src/main/resources/jpa/static-weaving/module/fineract-savings/persistence.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+ org.eclipse.persistence.jpa.PersistenceProvider
+
+
+ org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
+ org.apache.fineract.useradministration.domain.Permission
+ org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.accounting.closure.domain.GLClosure
+ org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount
+ org.apache.fineract.accounting.glaccount.domain.TrialBalance
+ org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping
+ org.apache.fineract.accounting.rule.domain.AccountingRule
+ org.apache.fineract.accounting.rule.domain.AccountingTagRule
+ org.apache.fineract.accounting.journalentry.domain.JournalEntry
+
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
+
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
+ org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
+
+
+ org.apache.fineract.interoperation.domain.InteropIdentifier
+ org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives
+ org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart
+ org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentive
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart
+ org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs
+ org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction
+ org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure
+ org.apache.fineract.portfolio.savings.domain.DepositProductRecurringDetail
+ org.apache.fineract.portfolio.savings.domain.DepositProductTermAndPreClosure
+ org.apache.fineract.portfolio.savings.domain.FixedDepositProduct
+ org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring
+ org.apache.fineract.portfolio.savings.domain.RecurringDepositProduct
+ org.apache.fineract.portfolio.savings.domain.SavingsAccount
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction
+ org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails
+ org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory
+ org.apache.fineract.portfolio.savings.domain.SavingsProduct
+
+
+ org.apache.fineract.portfolio.charge.domain.Charge
+
+ false
+
+
+
+
+
diff --git a/fineract-tax/build.gradle b/fineract-tax/build.gradle
index 1d0844df6..e7fe509f1 100644
--- a/fineract-tax/build.gradle
+++ b/fineract-tax/build.gradle
@@ -21,31 +21,10 @@ description = 'Fineract Taxes'
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/taxes/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"
- }
+compileJava {
+ dependsOn ':fineract-avro-schemas:buildJavaSdk'
}
-// Configuration for Swagger documentation generation task
-// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
-import org.apache.tools.ant.filters.ReplaceTokens
-
-
-
configurations {
providedRuntime // needed for Spring Boot executable WAR
providedCompile
@@ -91,10 +70,6 @@ eclipse {
}
}
-/* 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 {
diff --git a/fineract-report/src/main/resources/jpa/report/persistence.xml b/fineract-tax/src/main/resources/jpa/static-weaving/module/fineract-tax/persistence.xml
similarity index 81%
rename from fineract-report/src/main/resources/jpa/report/persistence.xml
rename to fineract-tax/src/main/resources/jpa/static-weaving/module/fineract-tax/persistence.xml
index d3ba0d405..5a440edcc 100644
--- a/fineract-report/src/main/resources/jpa/report/persistence.xml
+++ b/fineract-tax/src/main/resources/jpa/static-weaving/module/fineract-tax/persistence.xml
@@ -22,52 +22,57 @@
+ xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
org.eclipse.persistence.jpa.PersistenceProvider
-
- org.apache.fineract.accounting.glaccount.domain.GLAccount
- org.apache.fineract.accounting.journalentry.domain.JournalEntry
- org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom
- org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom
- org.apache.fineract.infrastructure.codes.domain.Code
- org.apache.fineract.infrastructure.codes.domain.CodeValue
- org.apache.fineract.infrastructure.documentmanagement.domain.Image
- org.apache.fineract.organisation.staff.domain.Staff
- org.apache.fineract.organisation.office.domain.Office
- org.apache.fineract.organisation.office.domain.OrganisationCurrency
- org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
- org.apache.fineract.organisation.holiday.domain.Holiday
- org.apache.fineract.organisation.workingdays.domain.WorkingDays
- org.apache.fineract.portfolio.group.domain.Group
- org.apache.fineract.portfolio.group.domain.GroupLevel
- org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
- org.apache.fineract.portfolio.group.domain.GroupRole
- org.apache.fineract.portfolio.client.domain.Client
- org.apache.fineract.portfolio.client.domain.ClientIdentifier
- org.apache.fineract.portfolio.rate.domain.Rate
- org.apache.fineract.portfolio.fund.domain.Fund
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
- org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
- org.apache.fineract.portfolio.paymenttype.domain.PaymentType
- org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
- org.apache.fineract.portfolio.tax.domain.TaxGroup
- org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
- org.apache.fineract.portfolio.tax.domain.TaxComponent
- org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRate
- org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod
- org.apache.fineract.portfolio.calendar.domain.Calendar
- org.apache.fineract.portfolio.calendar.domain.CalendarHistory
- org.apache.fineract.portfolio.calendar.domain.CalendarInstance
- org.apache.fineract.useradministration.domain.AppUser
+
+
org.apache.fineract.useradministration.domain.Role
+ org.apache.fineract.portfolio.fund.domain.Fund
+ org.apache.fineract.infrastructure.documentmanagement.domain.Image
+ org.apache.fineract.organisation.workingdays.domain.WorkingDays
org.apache.fineract.useradministration.domain.Permission
org.apache.fineract.useradministration.domain.AppUserClientMapping
+ org.apache.fineract.commands.domain.CommandSource
+ org.apache.fineract.useradministration.domain.AppUser
+ org.apache.fineract.accounting.glaccount.domain.GLAccount
+ org.apache.fineract.organisation.monetary.domain.OrganisationCurrency
+ org.apache.fineract.organisation.staff.domain.Staff
+ org.apache.fineract.portfolio.rate.domain.Rate
+ org.apache.fineract.organisation.monetary.domain.ApplicationCurrency
+ org.apache.fineract.portfolio.calendar.domain.CalendarInstance
+ org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail
+ org.apache.fineract.portfolio.calendar.domain.Calendar
+ org.apache.fineract.portfolio.calendar.domain.CalendarHistory
+ org.apache.fineract.portfolio.client.domain.ClientIdentifier
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket
+ org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange
+ org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory
+ org.apache.fineract.portfolio.group.domain.Group
+ org.apache.fineract.portfolio.client.domain.Client
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEventConfiguration
+ org.apache.fineract.portfolio.group.domain.GroupRole
+ org.apache.fineract.portfolio.paymenttype.domain.PaymentType
+ org.apache.fineract.portfolio.group.domain.GroupLevel
+ org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent
+ org.apache.fineract.organisation.office.domain.Office
+ org.apache.fineract.organisation.holiday.domain.Holiday
+ org.apache.fineract.infrastructure.cache.domain.PlatformCache
+ org.apache.fineract.infrastructure.codes.domain.Code
+ org.apache.fineract.infrastructure.businessdate.domain.BusinessDate
+ org.apache.fineract.infrastructure.codes.domain.CodeValue
+
+
+ org.apache.fineract.portfolio.tax.domain.TaxComponent
+ org.apache.fineract.portfolio.tax.domain.TaxComponentHistory
+ org.apache.fineract.portfolio.tax.domain.TaxGroup
+ org.apache.fineract.portfolio.tax.domain.TaxGroupMappings
+
false
diff --git a/static-weaving.gradle b/static-weaving.gradle
new file mode 100644
index 000000000..7d462ae20
--- /dev/null
+++ b/static-weaving.gradle
@@ -0,0 +1,65 @@
+/**
+ * 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.
+ */
+// In static-weaving.gradle
+
+// Wait until after project evaluation to ensure all plugins are applied
+project.afterEvaluate {
+ // Only configure if this is a Java project
+ if (!project.plugins.hasPlugin('java')) {
+ logger.lifecycle("ℹ Skipping static weaving configuration for non-Java project: ${project.name}")
+ return
+ }
+
+ // Check if the module contains JPA entities
+ def persistenceXmlFile = file("src/main/resources/jpa/static-weaving/module/${project.name}/persistence.xml")
+ def hasJpaEntities = persistenceXmlFile.exists()
+
+ if (hasJpaEntities) {
+ logger.lifecycle("Configuring EclipseLink static weaving for ${project.name}")
+
+ compileJava.doLast {
+ def source = sourceSets.main.java.classesDirectory.get()
+
+ File weavingRoot = new File(temporaryDir, "static-weaving")
+ File metaInf = new File(weavingRoot, "META-INF")
+ metaInf.mkdirs()
+
+ copy {
+ from persistenceXmlFile.toPath()
+ into metaInf.toPath()
+ }
+
+ javaexec {
+ description = 'Performs EclipseLink static weaving of entity classes'
+ mainClass.set("org.eclipse.persistence.tools.weaving.jpa.StaticWeave")
+ classpath = project.sourceSets.main.runtimeClasspath
+ args = [
+ "-persistenceinfo",
+ weavingRoot.absolutePath,
+ source,
+ source
+ ]
+ }
+ }
+
+ logger.lifecycle("✓ EclipseLink static weaving configured for ${project.name}")
+ } else {
+ logger.lifecycle("ℹ No JPA entities found in ${project.name}, skipping static weaving configuration")
+ }
+}