diff --git a/build.gradle b/build.gradle index 1bd72f714b9..0174bcff954 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,8 @@ buildscript { 'fineract-avro-schemas', 'fineract-e2e-tests-core', 'fineract-e2e-tests-runner', - 'fineract-progressive-loan' + 'fineract-progressive-loan', + 'fineract-bulkimport' ].contains(it.name) } fineractPublishProjects = subprojects.findAll{ @@ -66,7 +67,8 @@ buildscript { 'fineract-report', 'fineract-branch', 'fineract-document', - 'fineract-progressive-loan' + 'fineract-progressive-loan', + 'fineract-bulkimport' ].contains(it.name) } npmRepository = 'https://npm.pkg.github.com' diff --git a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle index 2e4b1c5a479..91a70770d1d 100644 --- a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle +++ b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle @@ -214,7 +214,6 @@ dependencyManagement { dependencySet(group: 'org.apache.poi', version: '5.3.0') { entry 'poi' entry 'poi-ooxml' - entry 'poi-ooxml-schemas' } dependencySet(group: 'io.rest-assured', version: '5.5.0') { diff --git a/fineract-bulkimport/build.gradle b/fineract-bulkimport/build.gradle new file mode 100644 index 00000000000..76f3f77a18f --- /dev/null +++ b/fineract-bulkimport/build.gradle @@ -0,0 +1,106 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +description = 'Fineract Bulkimport' + +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/bulkimport/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" + } +} + +// 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 + compile() { + exclude module: 'hibernate-entitymanager' + exclude module: 'hibernate-validator' + exclude module: 'activation' + exclude module: 'bcmail-jdk14' + exclude module: 'bcprov-jdk14' + exclude module: 'bctsp-jdk14' + exclude module: 'c3p0' + exclude module: 'stax-api' + exclude module: 'jaxb-api' + exclude module: 'jaxb-impl' + exclude module: 'jboss-logging' + exclude module: 'itext-rtf' + exclude module: 'classworlds' + } + runtime +} + +apply from: 'dependencies.gradle' + +// Configuration for the modernizer plugin +// https://github.com/andygoossens/gradle-modernizer-plugin +modernizer { + ignoreClassNamePatterns = [ + '.*AbstractPersistableCustom', + '.*EntityTables', + '.*domain.*' + ] +} + +// If we are running Gradle within Eclipse to enhance classes with OpenJPA, +// set the classes directory to point to Eclipse's default build directory +if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') { + sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-bulkimport/bin/main") +} + +eclipse { + project { + buildCommand([ LaunchConfigHandle: "/.externalToolBuilders/OpenJPA Enhance Builder.launch" ], 'org.eclipse.ui.externaltools.ExternalToolBuilder') + } +} + +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + +if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { + sourceSets { + test { + java { + exclude '**/core/boot/tests/**' + } + } + } +} diff --git a/fineract-bulkimport/dependencies.gradle b/fineract-bulkimport/dependencies.gradle new file mode 100644 index 00000000000..453ce26bc2e --- /dev/null +++ b/fineract-bulkimport/dependencies.gradle @@ -0,0 +1,78 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +dependencies { + // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'. + // Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library. + // We also (normally should have) no need to ever use 'compileOnly'. + + // implementation dependencies are directly used (compiled against) in src/main (and src/test) + // + implementation(project(path: ':fineract-core')) + implementation(project(path: ':fineract-document')) + implementation(project(path: ':fineract-rates')) + + implementation( + 'org.springframework.boot:spring-boot-starter-web', + 'org.springframework.boot:spring-boot-starter-security', + 'jakarta.ws.rs:jakarta.ws.rs-api', + 'org.glassfish.jersey.media:jersey-media-multipart', + + 'com.google.guava:guava', + 'com.google.code.gson:gson', + + 'org.apache.commons:commons-lang3', + + 'com.jayway.jsonpath:json-path', + + 'com.github.spotbugs:spotbugs-annotations', + 'io.swagger.core.v3:swagger-annotations-jakarta', + + 'com.squareup.retrofit2:converter-gson', + + 'org.springdoc:springdoc-openapi-starter-webmvc-ui', + 'org.mapstruct:mapstruct', + + 'io.github.resilience4j:resilience4j-spring-boot3', + 'org.apache.httpcomponents:httpcore', + 'org.apache.poi:poi', + 'org.apache.poi:poi-ooxml-full:5.2.5', + ) + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + annotationProcessor 'org.mapstruct:mapstruct-processor' + implementation ('org.springframework.boot:spring-boot-starter-data-jpa') { + exclude group: 'org.hibernate' + } + implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') { + exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence' + } + // testCompile dependencies are ONLY used in src/test, not src/main. + // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly! + // + testImplementation( 'io.github.classgraph:classgraph' ) + testImplementation ('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'com.jayway.jsonpath', module: 'json-path' + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + exclude group: 'jakarta.activation' + exclude group: 'javax.activation' + exclude group: 'org.skyscreamer' + } + testImplementation ('org.mockito:mockito-inline') +} diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/api/BulkImportApiResource.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/api/BulkImportApiResource.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/api/BulkImportApiResource.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/api/BulkImportApiResource.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/CenterConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/CenterConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/CenterConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/CenterConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChargeConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChargeConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChargeConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChargeConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChartOfAcountsConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChartOfAcountsConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChartOfAcountsConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ChartOfAcountsConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientEntityConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientEntityConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientEntityConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientEntityConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientPersonConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientPersonConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientPersonConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/ClientPersonConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/FixedDepositConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/FixedDepositConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/FixedDepositConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/FixedDepositConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GroupConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GroupConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GroupConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GroupConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GuarantorConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GuarantorConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GuarantorConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/GuarantorConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/JournalEntryConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/JournalEntryConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/JournalEntryConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/JournalEntryConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanRepaymentConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanRepaymentConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanRepaymentConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/LoanRepaymentConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/OfficeConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/OfficeConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/OfficeConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/OfficeConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/RecurringDepositConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/RecurringDepositConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/RecurringDepositConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/RecurringDepositConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SavingsConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SavingsConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SavingsConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SavingsConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SharedAccountsConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SharedAccountsConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SharedAccountsConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/SharedAccountsConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/StaffConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/StaffConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/StaffConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/StaffConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TemplatePopulateImportConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TemplatePopulateImportConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TemplatePopulateImportConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TemplatePopulateImportConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/TransactionConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/UserConstants.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/UserConstants.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/UserConstants.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/constants/UserConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/BulkImportEvent.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/BulkImportEvent.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/BulkImportEvent.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/BulkImportEvent.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/Count.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/Count.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/Count.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/Count.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/ImportFormatType.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/ImportFormatType.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/ImportFormatType.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/data/ImportFormatType.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocumentRepository.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocumentRepository.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocumentRepository.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocumentRepository.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/exceptions/ImportTypeNotFoundException.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/exceptions/ImportTypeNotFoundException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/exceptions/ImportTypeNotFoundException.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/exceptions/ImportTypeNotFoundException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandler.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandler.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandler.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandler.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/ImportHandlerUtils.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/DateSerializer.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/DateSerializer.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/DateSerializer.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/DateSerializer.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataIdSerializer.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataIdSerializer.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataIdSerializer.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataIdSerializer.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataValueSerializer.java b/fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataValueSerializer.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataValueSerializer.java rename to fineract-bulkimport/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/EnumOptionDataValueSerializer.java diff --git a/fineract-bulkimport/src/main/resources/jpa/bulkimport/persistence.xml b/fineract-bulkimport/src/main/resources/jpa/bulkimport/persistence.xml new file mode 100644 index 00000000000..12207d50a33 --- /dev/null +++ b/fineract-bulkimport/src/main/resources/jpa/bulkimport/persistence.xml @@ -0,0 +1,215 @@ + + + + + + + + + + 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.bank.domain.Bank + org.apache.fineract.organisation.check.domain.Check + org.apache.fineract.organisation.bankaccount.domain.BankAccount + org.apache.fineract.organisation.checkbook.domain.Checkbook + org.apache.fineract.portfolio.loanaccount.domain.Loan + org.apache.fineract.portfolio.loanproduct.domain.LoanProduct + org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule + org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType + org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType + org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule + org.apache.fineract.portfolio.loanproduct.domain.LoanProductCreditAllocationRule + org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType + org.apache.fineract.portfolio.loanproduct.domain.LoanProductMinMaxConstraints + org.apache.fineract.portfolio.loanproduct.domain.LoanProductTrancheDetails + org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations + org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails + org.apache.fineract.portfolio.loanproduct.domain.LoanProductGuaranteeDetails + org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes + org.apache.fineract.portfolio.loanproduct.domain.LoanProductFloatingRates + org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig + org.apache.fineract.portfolio.loanproduct.domain.RepaymentStartDateType + org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter + org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverterr + org.apache.fineract.portfolio.loanproduct.domain.AllocationType + org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter + org.apache.fineract.portfolio.floatingrates.domain.FloatingRate + org.apache.fineract.portfolio.rate.domain.Rate + org.apache.fineract.portfolio.creditlimit.domain.CreditLimit + org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount + org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket + org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange + org.apache.fineract.portfolio.loanaccount.domain.LoanDisbursementDetails + org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariations + org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalculationDetails + org.apache.fineract.portfolio.loanaccount.domain.LoanTopupDetails + org.apache.fineract.portfolio.loanaccount.domain.LoanPaymentAllocationRule + org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule + org.apache.fineract.portfolio.loanaccount.domain.LoanProductRelatedDetail + org.apache.fineract.portfolio.loanaccount.domain.LoanCharge + org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheCharge + org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement + org.apache.fineract.portfolio.loanaccount.domain.LoanOfficerAssignmentHistory + org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment + org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction + org.apache.fineract.portfolio.loanaccount.domain.LoanSummary + org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleTransactionProcessorFactory + org.apache.fineract.portfolio.loanaccount.domain.LoanLifecycleStateMachine + org.apache.fineract.portfolio.loanaccount.domain.LoanSummaryWrapper + org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge + org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalcualtionAdditionalDetails + org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping + org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge + org.apache.fineract.portfolio.loanaccount.domain.LoanOverdueInstallmentCharge + org.apache.fineract.portfolio.loanaccount.domain.LoanChargePaidBy + org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter + org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation + org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod + org.apache.fineract.portfolio.collateral.domain.LoanCollateral + org.apache.fineract.portfolio.collateral.domain.LoanCollateral + org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement + org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain + org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks + 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.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.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.creditlimit.domain.CreditLimit + 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.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.loanproduct.domain.SupportedInterestRefundTypesListConverter + 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.loanproduct.domain.AllocationTypeListConverter + org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule + org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType + org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter + 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.loansubline.domain.LoanSubline + org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleImport + + org.apache.fineract.portfolio.savings.domain.SavingsAccount + org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring + org.apache.fineract.portfolio.savings.domain.SavingsProduct + org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory + org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction + org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails + org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy + org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge + org.apache.fineract.interoperation.domain.InteropIdentifier + org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionRelation + + org.apache.fineract.infrastructure.documentmanagement.domain.Document + + 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.floatingrates.domain.FloatingRate + org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod + + org.apache.fineract.organisation.thirdparty.domain.ThirdParty + false + + + + + diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index 7af3a59982e..3044b0d1921 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -36,6 +36,7 @@ dependencies { implementation(project(path: ':fineract-progressive-loan')) implementation(project(path: ':fineract-report')) implementation(project(path: ':fineract-tax')) + implementation(project(path: ':fineract-bulkimport')) providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") diff --git a/settings.gradle b/settings.gradle index 6347968f221..59a23aef23c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -69,6 +69,7 @@ include ':fineract-avro-schemas' include ':fineract-e2e-tests-core' include ':fineract-e2e-tests-runner' include 'fineract-progressive-loan' +include 'fineract-bulkimport' // NOTE: custom Docker image with all custom modules included include ':custom:docker' // NOTE: dynamically load custom modules with pattern "custom -> company -> category -> module"