<?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.
-->

<ofbiz-component name="droppingcrumbs"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
    <!-- define resource loaders; most common is to use the component resource loader -->
    <resource-loader name="main" type="component"/>

    <!-- entity resources: model(s), eca(s), group, and data definitions -->
    <entity-resource type="data" reader-name="seed" loader="main" location="data/DroppingCrumbsThemeData.xml"/>

    <!-- web applications -->
    <webapp name="droppingcrumbs"
        title="droppingcrumbs"
        menu-name="secondary"
        server="default-server"
        location="webapp/droppingcrumbs"
        mount-point="/droppingcrumbs"
        app-bar-display="false"/>
</ofbiz-component>
