<?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="googlecheckout" enabled="true"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
    <resource-loader name="main" type="component"/>
    <classpath type="dir" location="config"/>
    <classpath type="jar" location="lib/*"/>
    <classpath type="jar" location="build/lib/*"/>

    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
    <entity-resource type="data" reader-name="seed" loader="main" location="data/GoogleCheckoutTypeData.xml"/>
    <entity-resource type="data" reader-name="seed" loader="main" location="data/GoogleCheckoutSecurityPermissionSeedData.xml"/>
    <entity-resource type="data" reader-name="demo" loader="main" location="data/GoogleCheckoutSecurityGroupDemoData.xml"/>
    <entity-resource type="data" reader-name="demo" loader="main" location="data/DemoGoogleCheckoutData.xml"/>
    
    <service-resource type="model" loader="main" location="servicedef/services_request.xml"/>
    <service-resource type="model" loader="main" location="servicedef/services.xml"/>
    <service-resource type="eca" loader="main" location="servicedef/secas.xml"/>
    
    <keystore loader="main" location="config/googlecerts.jks" password="changeit" name="googlecerts" type="jks" is-certstore="false" is-truststore="true"/>
    <webapp name="googlecheckout"
        title="Google Checkout"
        menu-name="secondary"
        server="default-server"
        location="webapp/googlecheckout"
        base-permission="GCHECKOUT"
        mount-point="/googlecheckout"/>

</ofbiz-component>
