This is an automated email from the ASF dual-hosted git repository.

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new d7a4e0e95 FINERACT-1932: Fineract modularization - fineract-branch
d7a4e0e95 is described below

commit d7a4e0e953402e5cdf1cdffcb1f84d98a334632b
Author: Jose Alberto Hernandez <[email protected]>
AuthorDate: Tue Apr 2 21:45:27 2024 -0600

    FINERACT-1932: Fineract modularization - fineract-branch
---
 build.gradle                                       |   4 +-
 fineract-branch/build.gradle                       | 106 +++++++++++++++++++++
 fineract-branch/dependencies.gradle                |  75 +++++++++++++++
 .../teller/api/CashierApiResource.java             |   0
 .../organisation/teller/api/TellerApiResource.java |   0
 .../teller/api/TellerApiResourceSwagger.java       |   0
 .../teller/api/TellerJournalApiResource.java       |   0
 .../organisation/teller/data/CashierData.java      |   0
 .../teller/data/CashierTransactionData.java        |   0
 .../data/CashierTransactionDataValidator.java      |   0
 .../data/CashierTransactionTypeTotalsData.java     |   0
 .../data/CashierTransactionsWithSummaryData.java   |   0
 .../organisation/teller/data/TellerData.java       |   0
 .../teller/data/TellerJournalData.java             |   0
 .../teller/data/TellerTransactionData.java         |   0
 .../organisation/teller/domain/Cashier.java        |   0
 .../teller/domain/CashierRepository.java           |   0
 .../teller/domain/CashierRepositoryWrapper.java    |   0
 .../teller/domain/CashierTransaction.java          |   0
 .../domain/CashierTransactionRepository.java       |   0
 .../organisation/teller/domain/CashierTxnType.java |   0
 .../organisation/teller/domain/Teller.java         |   0
 .../organisation/teller/domain/TellerJournal.java  |   0
 .../teller/domain/TellerRepository.java            |   0
 .../teller/domain/TellerRepositoryWrapper.java     |   0
 .../organisation/teller/domain/TellerStatus.java   |   0
 .../teller/domain/TellerTransaction.java           |   0
 .../teller/domain/TellerTransactionRepository.java |   0
 .../teller/exception/CashierAlreadyAllocated.java  |   0
 ...hierDateRangeOutOfTellerDateRangeException.java |   0
 .../exception/CashierExistForTellerException.java  |   0
 .../CashierInsufficientAmountException.java        |   0
 .../teller/exception/CashierNotFoundException.java |   0
 .../exception/InvalidDateInputException.java       |   0
 .../teller/exception/TellerNotFoundException.java  |   0
 .../AllocateCashToCashierCommandHandler.java       |  15 +--
 .../AllocateCashierToTellerCommandHandler.java     |  15 +--
 .../teller/handler/CreateTellerCommandHandler.java |  14 +--
 .../CreateTellerTransactionCommandHandler.java     |   9 +-
 .../DeleteCashierAllocationCommandHandler.java     |  15 +--
 .../teller/handler/DeleteTellerCommandHandler.java |  15 +--
 .../handler/ModifyCashierCommandHandler.java       |  15 +--
 .../SettleCashFromCashierCommandHandler.java       |  15 +--
 .../UpdateCashierAllocationCommandHandler.java     |  15 +--
 .../teller/handler/UpdateTellerCommandHandler.java |  15 +--
 .../TellerCommandFromApiJsonDeserializer.java      |   0
 .../service/CashierWritePlatformService.java       |   0
 .../TellerManagementReadPlatformService.java       |   0
 .../TellerTransactionWritePlatformService.java     |   0
 .../teller/service/TellerWritePlatformService.java |   0
 .../organisation/teller/util/DateRange.java        |   0
 .../module/branch/module-changelog-master.xml      |  26 +++++
 .../src/main/resources/jpa/branch/persistence.xml  |  76 +++++++++++++++
 fineract-branch/src/test/java/.gitkeep             |   0
 fineract-branch/src/test/resources/.gitkeep        |   0
 .../data/ApplicationCurrencyConfigurationData.java |   0
 .../service/CurrencyReadPlatformService.java       |   0
 .../service/CurrencyWritePlatformService.java      |   0
 .../OrganisationCurrencyReadPlatformService.java   |   0
 .../staff/exception/StaffNotFoundException.java    |   0
 fineract-provider/dependencies.gradle              |   1 +
 settings.gradle                                    |   1 +
 62 files changed, 308 insertions(+), 124 deletions(-)

diff --git a/build.gradle b/build.gradle
index 83bbf5cf7..e09cc9d5f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -30,6 +30,7 @@ buildscript {
                 'fineract-core',
                 'fineract-accounting',
                 'fineract-provider',
+                'fineract-branch',
                 'fineract-investor',
                 'fineract-loan',
                 'fineract-savings',
@@ -52,7 +53,8 @@ buildscript {
                 'fineract-provider',
                 'fineract-investor',
                 'fineract-loan',
-                'fineract-savings'
+                'fineract-savings',
+                'fineract-branch'
             ].contains(it.name)
         }
         npmRepository = 'https://npm.pkg.github.com'
diff --git a/fineract-branch/build.gradle b/fineract-branch/build.gradle
new file mode 100644
index 000000000..04a3b10e4
--- /dev/null
+++ b/fineract-branch/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 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"
+    }
+}
+
+// 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-branch/bin/main")
+}
+
+eclipse {
+    project {
+        buildCommand([ LaunchConfigHandle: 
"<project>/.externalToolBuilders/OpenJPA Enhance Builder.launch" ],  
'org.eclipse.ui.externaltools.ExternalToolBuilder')
+    }
+}
+
+/* 
http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle
 */
+sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory
+sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory
+
+if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
+    sourceSets {
+        test {
+            java {
+                exclude '**/core/boot/tests/**'
+            }
+        }
+    }
+}
diff --git a/fineract-branch/dependencies.gradle 
b/fineract-branch/dependencies.gradle
new file mode 100644
index 000000000..467fc305f
--- /dev/null
+++ b/fineract-branch/dependencies.gradle
@@ -0,0 +1,75 @@
+/**
+ * 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-accounting'))
+
+    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',
+            )
+    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/organisation/teller/api/CashierApiResource.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/CashierApiResource.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResource.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResourceSwagger.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResourceSwagger.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResourceSwagger.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerApiResourceSwagger.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/api/TellerJournalApiResource.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionDataValidator.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionDataValidator.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionDataValidator.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionDataValidator.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionTypeTotalsData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionTypeTotalsData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionTypeTotalsData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionTypeTotalsData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionsWithSummaryData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionsWithSummaryData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionsWithSummaryData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/CashierTransactionsWithSummaryData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerJournalData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerJournalData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerJournalData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerJournalData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerTransactionData.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerTransactionData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/data/TellerTransactionData.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/data/TellerTransactionData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepository.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepository.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepository.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepository.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepositoryWrapper.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepositoryWrapper.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepositoryWrapper.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierRepositoryWrapper.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransactionRepository.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransactionRepository.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransactionRepository.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransactionRepository.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTxnType.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTxnType.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTxnType.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTxnType.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerJournal.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerJournal.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerJournal.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerJournal.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepository.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepository.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepository.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepository.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepositoryWrapper.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepositoryWrapper.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepositoryWrapper.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerRepositoryWrapper.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerStatus.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerStatus.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerStatus.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerStatus.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransactionRepository.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransactionRepository.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransactionRepository.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransactionRepository.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierAlreadyAllocated.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierAlreadyAllocated.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierAlreadyAllocated.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierAlreadyAllocated.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierDateRangeOutOfTellerDateRangeException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierDateRangeOutOfTellerDateRangeException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierDateRangeOutOfTellerDateRangeException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierDateRangeOutOfTellerDateRangeException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierExistForTellerException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierExistForTellerException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierExistForTellerException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierExistForTellerException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierInsufficientAmountException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierInsufficientAmountException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierInsufficientAmountException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierInsufficientAmountException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierNotFoundException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierNotFoundException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/CashierNotFoundException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/CashierNotFoundException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/InvalidDateInputException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/InvalidDateInputException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/InvalidDateInputException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/InvalidDateInputException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/TellerNotFoundException.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/TellerNotFoundException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/exception/TellerNotFoundException.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/exception/TellerNotFoundException.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
similarity index 80%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
index e30e803af..4ce37fc8f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashToCashierCommandHandler.java
@@ -18,32 +18,21 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "ALLOCATECASHTOCASHIER")
 public class AllocateCashToCashierCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance.
-     *
-     * @param writePlatformService
-     *            the {@code CashierWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public AllocateCashToCashierCommandHandler(final 
TellerWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
similarity index 79%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
index d61cc50a8..64e3184ab 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/AllocateCashierToTellerCommandHandler.java
@@ -18,32 +18,21 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "ALLOCATECASHIER")
 public class AllocateCashierToTellerCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance.
-     *
-     * @param writePlatformService
-     *            the {@code CashierWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public AllocateCashierToTellerCommandHandler(final 
TellerWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
similarity index 81%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
index 40dfb63bf..4df7cfaa6 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerCommandHandler.java
@@ -18,12 +18,12 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -34,22 +34,12 @@ import org.springframework.stereotype.Service;
  * @since 2.0.0
  */
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "CREATE")
 public class CreateTellerCommandHandler implements NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance
-     *
-     * @param writePlatformService
-     *            the {@code TellerWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public CreateTellerCommandHandler(final TellerWritePlatformService 
writePlatformService) {
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return this.writePlatformService.createTeller(command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
similarity index 85%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
index c2e0147df..5a30ba09e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/CreateTellerTransactionCommandHandler.java
@@ -18,22 +18,17 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerTransactionWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 
+@RequiredArgsConstructor
 public class CreateTellerTransactionCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerTransactionWritePlatformService writePlatformService;
 
-    @Autowired
-    public CreateTellerTransactionCommandHandler(final 
TellerTransactionWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return this.writePlatformService.createTellerTransaction(command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
similarity index 81%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
index 589982602..adcb9109e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteCashierAllocationCommandHandler.java
@@ -18,12 +18,12 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -34,23 +34,12 @@ import org.springframework.stereotype.Service;
  * @since 2.0.0
  */
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "DELETECASHIERALLOCATION")
 public class DeleteCashierAllocationCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance.
-     *
-     * @param writePlatformService
-     *            the {@code CashierWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public DeleteCashierAllocationCommandHandler(final 
TellerWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return 
this.writePlatformService.deleteCashierAllocation(command.entityId(), 
command.subentityId(), command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
similarity index 81%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
index 96b49f10b..c4e8ebb34 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/DeleteTellerCommandHandler.java
@@ -18,12 +18,12 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -34,23 +34,12 @@ import org.springframework.stereotype.Service;
  * @since 2.0.0
  */
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "DELETE")
 public class DeleteTellerCommandHandler implements NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance
-     *
-     * @param writePlatformService
-     *            the {@code TellerWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public DeleteTellerCommandHandler(final TellerWritePlatformService 
writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return this.writePlatformService.deleteTeller(command.entityId());
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
similarity index 80%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
index ca3bb15f1..cabda9a14 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/ModifyCashierCommandHandler.java
@@ -18,11 +18,11 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.CashierWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Handles a modify cashier command.
@@ -31,22 +31,11 @@ import 
org.springframework.beans.factory.annotation.Autowired;
  * @see 
org.apache.fineract.organisation.teller.service.CashierWritePlatformService
  * @since 2.0.0
  */
+@RequiredArgsConstructor
 public class ModifyCashierCommandHandler implements NewCommandSourceHandler {
 
     private final CashierWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance.
-     *
-     * @param writePlatformService
-     *            the {@code CashierWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public ModifyCashierCommandHandler(final CashierWritePlatformService 
writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return this.writePlatformService.modifyCashier(command.entityId(), 
command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
similarity index 80%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
index 6b7114721..2acf9aa8f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/SettleCashFromCashierCommandHandler.java
@@ -18,32 +18,21 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "SETTLECASHFROMCASHIER")
 public class SettleCashFromCashierCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance.
-     *
-     * @param writePlatformService
-     *            the {@code CashierWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public SettleCashFromCashierCommandHandler(final 
TellerWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
similarity index 81%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
index 51f43a655..bd8db12f4 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateCashierAllocationCommandHandler.java
@@ -18,12 +18,12 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -34,23 +34,12 @@ import org.springframework.stereotype.Service;
  * @since 2.0.0
  */
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "UPDATECASHIERALLOCATION")
 public class UpdateCashierAllocationCommandHandler implements 
NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance
-     *
-     * @param writePlatformService
-     *            the {@code TellerWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public UpdateCashierAllocationCommandHandler(final 
TellerWritePlatformService writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return 
this.writePlatformService.updateCashierAllocation(command.entityId(), 
command.subentityId(), command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
similarity index 81%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
index 91e7d353d..d90e6859b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
+++ 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/UpdateTellerCommandHandler.java
@@ -18,12 +18,12 @@
  */
 package org.apache.fineract.organisation.teller.handler;
 
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.commands.annotation.CommandType;
 import org.apache.fineract.commands.handler.NewCommandSourceHandler;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.organisation.teller.service.TellerWritePlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -34,23 +34,12 @@ import org.springframework.stereotype.Service;
  * @since 2.0.0
  */
 @Service
+@RequiredArgsConstructor
 @CommandType(entity = "TELLER", action = "UPDATE")
 public class UpdateTellerCommandHandler implements NewCommandSourceHandler {
 
     private final TellerWritePlatformService writePlatformService;
 
-    /**
-     * Creates a new instance
-     *
-     * @param writePlatformService
-     *            the {@code TellerWritePlatformService} used to access the 
backend
-     */
-    @Autowired
-    public UpdateTellerCommandHandler(final TellerWritePlatformService 
writePlatformService) {
-
-        this.writePlatformService = writePlatformService;
-    }
-
     @Override
     public CommandProcessingResult processCommand(final JsonCommand command) {
         return this.writePlatformService.modifyTeller(command.entityId(), 
command);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/serialization/TellerCommandFromApiJsonDeserializer.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/serialization/TellerCommandFromApiJsonDeserializer.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/serialization/TellerCommandFromApiJsonDeserializer.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/serialization/TellerCommandFromApiJsonDeserializer.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/CashierWritePlatformService.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/CashierWritePlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/CashierWritePlatformService.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/CashierWritePlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformService.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformService.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerTransactionWritePlatformService.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerTransactionWritePlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerTransactionWritePlatformService.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerTransactionWritePlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerWritePlatformService.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerWritePlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerWritePlatformService.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/TellerWritePlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/util/DateRange.java
 
b/fineract-branch/src/main/java/org/apache/fineract/organisation/teller/util/DateRange.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/teller/util/DateRange.java
rename to 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/util/DateRange.java
diff --git 
a/fineract-branch/src/main/resources/db/changelog/tenant/module/branch/module-changelog-master.xml
 
b/fineract-branch/src/main/resources/db/changelog/tenant/module/branch/module-changelog-master.xml
new file mode 100644
index 000000000..035b136c7
--- /dev/null
+++ 
b/fineract-branch/src/main/resources/db/changelog/tenant/module/branch/module-changelog-master.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog";
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog 
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd";>
+  <!-- Sequence is starting from 4000 to make it easier to move existing 
liquibase changesets here -->
+</databaseChangeLog>
diff --git a/fineract-branch/src/main/resources/jpa/branch/persistence.xml 
b/fineract-branch/src/main/resources/jpa/branch/persistence.xml
new file mode 100644
index 000000000..49d7498ea
--- /dev/null
+++ b/fineract-branch/src/main/resources/jpa/branch/persistence.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+
+<persistence version="2.0"
+    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";>
+
+    <!--  This file is only used for static weaving, nothing more.  -->
+    <!--  You can find the runtime configuration in the JPAConfig class  -->
+    <persistence-unit name="jpa-pu" transaction-type="RESOURCE_LOCAL">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <!-- Fineract core module -->
+        
<class>org.apache.fineract.accounting.glaccount.domain.GLAccount</class>
+        
<class>org.apache.fineract.accounting.journalentry.domain.JournalEntry</class>
+        
<class>org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom</class>
+        
<class>org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom</class>
+        <class>org.apache.fineract.infrastructure.codes.domain.Code</class>
+        
<class>org.apache.fineract.infrastructure.codes.domain.CodeValue</class>
+        
<class>org.apache.fineract.infrastructure.documentmanagement.domain.Image</class>
+        <class>org.apache.fineract.organisation.staff.domain.Staff</class>
+        <class>org.apache.fineract.organisation.office.domain.Office</class>
+        
<class>org.apache.fineract.organisation.office.domain.OrganisationCurrency</class>
+        
<class>org.apache.fineract.organisation.monetary.domain.ApplicationCurrency</class>
+        <class>org.apache.fineract.organisation.holiday.domain.Holiday</class>
+        
<class>org.apache.fineract.organisation.workingdays.domain.WorkingDays</class>
+        <class>org.apache.fineract.portfolio.group.domain.Group</class>
+        <class>org.apache.fineract.portfolio.group.domain.GroupLevel</class>
+        
<class>org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory</class>
+        <class>org.apache.fineract.portfolio.group.domain.GroupRole</class>
+        <class>org.apache.fineract.portfolio.client.domain.Client</class>
+        <class>org.apache.fineract.portfolio.rate.domain.Rate</class>
+        <class>org.apache.fineract.portfolio.fund.domain.Fund</class>
+        
<class>org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket</class>
+        
<class>org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange</class>
+        <class>org.apache.fineract.portfolio.charge.domain.Charge</class>
+        
<class>org.apache.fineract.portfolio.paymenttype.domain.PaymentType</class>
+        
<class>org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail</class>
+        <class>org.apache.fineract.portfolio.tax.domain.TaxGroup</class>
+        
<class>org.apache.fineract.portfolio.tax.domain.TaxGroupMappings</class>
+        <class>org.apache.fineract.portfolio.tax.domain.TaxComponent</class>
+        
<class>org.apache.fineract.portfolio.tax.domain.TaxComponentHistory</class>
+        
<class>org.apache.fineract.portfolio.floatingrates.domain.FloatingRate</class>
+        
<class>org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod</class>
+        <class>org.apache.fineract.portfolio.calendar.domain.Calendar</class>
+        
<class>org.apache.fineract.portfolio.calendar.domain.CalendarHistory</class>
+        
<class>org.apache.fineract.portfolio.calendar.domain.CalendarInstance</class>
+        <class>org.apache.fineract.useradministration.domain.AppUser</class>
+        <class>org.apache.fineract.useradministration.domain.Role</class>
+        <class>org.apache.fineract.useradministration.domain.Permission</class>
+        
<class>org.apache.fineract.useradministration.domain.AppUserClientMapping</class>
+        <exclude-unlisted-classes>false</exclude-unlisted-classes>
+        <properties>
+            <property name="eclipselink.weaving" value="static" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/fineract-branch/src/test/java/.gitkeep 
b/fineract-branch/src/test/java/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fineract-branch/src/test/resources/.gitkeep 
b/fineract-branch/src/test/resources/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/ApplicationCurrencyConfigurationData.java
 
b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/data/ApplicationCurrencyConfigurationData.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/ApplicationCurrencyConfigurationData.java
rename to 
fineract-core/src/main/java/org/apache/fineract/organisation/monetary/data/ApplicationCurrencyConfigurationData.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyReadPlatformService.java
 
b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyReadPlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyReadPlatformService.java
rename to 
fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyReadPlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyWritePlatformService.java
 
b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyWritePlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyWritePlatformService.java
rename to 
fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/CurrencyWritePlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/OrganisationCurrencyReadPlatformService.java
 
b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/OrganisationCurrencyReadPlatformService.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/service/OrganisationCurrencyReadPlatformService.java
rename to 
fineract-core/src/main/java/org/apache/fineract/organisation/monetary/service/OrganisationCurrencyReadPlatformService.java
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/exception/StaffNotFoundException.java
 
b/fineract-core/src/main/java/org/apache/fineract/organisation/staff/exception/StaffNotFoundException.java
similarity index 100%
rename from 
fineract-provider/src/main/java/org/apache/fineract/organisation/staff/exception/StaffNotFoundException.java
rename to 
fineract-core/src/main/java/org/apache/fineract/organisation/staff/exception/StaffNotFoundException.java
diff --git a/fineract-provider/dependencies.gradle 
b/fineract-provider/dependencies.gradle
index 08c599d8a..67487cac8 100644
--- a/fineract-provider/dependencies.gradle
+++ b/fineract-provider/dependencies.gradle
@@ -29,6 +29,7 @@ dependencies {
     implementation(project(path: ':fineract-investor'))
     implementation(project(path: ':fineract-loan'))
     implementation(project(path: ':fineract-savings'))
+    implementation(project(path: ':fineract-branch'))
     providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
 
     // Never use "compile" scope, but make all dependencies either 
'implementation', 'runtimeOnly' or 'testCompile'.
diff --git a/settings.gradle b/settings.gradle
index 2a37c5397..eca374247 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -51,6 +51,7 @@ rootProject.name='fineract'
 include ':fineract-core'
 include ':fineract-accounting'
 include ':fineract-provider'
+include ':fineract-branch'
 include ':fineract-investor'
 include ':fineract-loan'
 include ':fineract-savings'

Reply via email to