<?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.
-->

<entitygroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitygroup.xsd">

    <!-- ========================================================= -->
    <!-- org.apache.ofbiz.entity.tenant -->
    <!-- ========================================================= -->
    <entity-group group="org.apache.ofbiz.tenant" entity="Tenant"/>
    <entity-group group="org.apache.ofbiz.tenant" entity="TenantDataSource"/>
    <entity-group group="org.apache.ofbiz.tenant" entity="TenantKeyEncryptingKey"/>
<!--     <entity-group group="org.apache.ofbiz.tenant" entity="TenantUserLogin"/> -->
    <entity-group group="org.apache.ofbiz.tenant" entity="Component"/>
    <entity-group group="org.apache.ofbiz.tenant" entity="TenantComponent"/>
    <entity-group group="org.apache.ofbiz.tenant" entity="TenantDomainName"/>
</entitygroup>
