<?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>
        <!-- Fineract investor module -->
        <class>org.apache.fineract.investor.domain.ExternalAssetOwner</class>
        <class>org.apache.fineract.investor.domain.ExternalAssetOwnerTransfer</class>
        <class>org.apache.fineract.investor.domain.ExternalAssetOwnerTransferLoanMapping</class>
        <class>org.apache.fineract.investor.domain.ExternalAssetOwnerTransferDetails</class>
        <class>org.apache.fineract.investor.domain.ExternalAssetOwnerJournalEntryMapping</class>
        <class>org.apache.fineract.investor.domain.ExternalAssetOwnerTransferJournalEntryMapping</class>
        <!-- Fineract loan module -->
        <class>org.apache.fineract.portfolio.collateral.domain.LoanCollateral</class>
        <class>org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement</class>
        <class>org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.Loan</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanCharge</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanChargePaidBy</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanDisbursementDetails</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalculationDetails</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalcualtionAdditionalDetails</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanOfficerAssignmentHistory</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanOverdueInstallmentCharge</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariations</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTopupDetails</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheCharge</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProduct</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductFloatingRates</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductGuaranteeDetails</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig</class>
        <class>org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.DueType</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.AllocationType</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanPaymentAllocationRule</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductCreditAllocationRule</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType</class>
        <class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter</class>
        <class>org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter</class>
        <!-- Fineract Savings module -->
        <class>org.apache.fineract.interoperation.domain.InteropIdentifier</class>
        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives</class>
        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart</class>
        <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab</class>
        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart</class>
        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs</class>
        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives</class>
        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction</class>
        <class>org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure</class>
        <class>org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsProduct</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccount</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails</class>
        <class>org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory</class>
        <!-- Fineract Accounting module -->
        <class>org.apache.fineract.accounting.rule.domain.AccountingRule</class>
        <class>org.apache.fineract.accounting.rule.domain.AccountingTagRule</class>
        <!-- Fineract Document module -->
        <class>org.apache.fineract.infrastructure.documentmanagement.domain.Document</class>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.weaving" value="static" />
        </properties>
    </persistence-unit>
</persistence>
