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

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>OFBiz Service Engine Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- dead lock retry testing services -->
    <service name="testServiceDeadLockRetry" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceDeadLockRetry">
        <implements service="testServiceInterface"/>
    </service>
    <service name="testServiceDeadLockRetryThreadA" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceDeadLockRetryThreadA">
    </service>
    <service name="testServiceDeadLockRetryThreadB" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceDeadLockRetryThreadB">
    </service>

    <!-- lock wait timeout retry testing services -->
    <service name="testServiceLockWaitTimeoutRetry" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetry">
        <implements service="testServiceInterface"/>
    </service>
    <service name="testServiceLockWaitTimeoutRetryGrabber" engine="java" auth="false" transaction-timeout="6"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryGrabber">
    </service>
    <service name="testServiceLockWaitTimeoutRetryWaiter" engine="java" auth="false" transaction-timeout="2"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryWaiter">
    </service>

    <!-- lock wait timeout retry testing services - a scenario that we can't do automatically with the single service because the parent owns the tx we have to have end before it will succeed -->
    <service name="testServiceLockWaitTimeoutRetryCantRecover" engine="java" auth="false" transaction-timeout="2"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryCantRecover">
        <implements service="testServiceInterface"/>
    </service>
    <service name="testServiceLockWaitTimeoutRetryCantRecoverWaiter" engine="java" auth="false" transaction-timeout="4"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryCantRecoverWaiter">
    </service>

    <!-- make sure that if rollback only is set on the tx of the parent service you can still run a child service in a separate tx -->
    <service name="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper">
        <implements service="testServiceInterface"/>
    </service>
    <service name="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent">
    </service>
    <service name="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParentSubService" engine="java" auth="false" require-new-transaction="true"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceOwnTxSubServiceAfterSetRollbackOnlyInParentSubService">
    </service>

    <!-- make sure services are running on global-commit and global-rollback -->
    <service name="testServiceEcaGlobalEventExec" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceEcaGlobalEventExec">
        <implements service="testServiceInterface"/>
    </service>
    <service name="testServiceEcaGlobalEventExecOnCommit" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceEcaGlobalEventExecOnCommit">
    </service>
    <service name="testServiceEcaGlobalEventExecToRollback" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceEcaGlobalEventExecToRollback">
    </service>
    <service name="testServiceEcaGlobalEventExecOnRollback" engine="java" auth="false"
        location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceEcaGlobalEventExecOnRollback">
    </service>
    
    <!-- Call xml rpc from engine -->
    <service name="testXmlRpcAdd" engine="java" auth="false" location="org.ofbiz.service.test.XmlRpcTests" invoke="testXmlRpcAdd" export="true">    
        <attribute name="num1" mode="IN" type="Integer"/>    
        <attribute name="num2" mode="IN" type="Integer"/>    
        <attribute name="resulting" mode="OUT" type="Integer"/>    
    </service>
    <service name="testXmlRpcLocalEngine" engine="xml-rpc-local" auth="false" invoke="testXmlRpcAdd">        
        <attribute name="num1" mode="IN" type="Integer"/>    
        <attribute name="num2" mode="IN" type="Integer"/>    
        <attribute name="resulting" mode="OUT" type="Integer"/>    
    </service>
    <service name="testXmlRpcClientAdd" engine="java" auth="false" location="org.ofbiz.service.test.XmlRpcTests" invoke="testXmlRpcClientAdd">
        <implements service="testServiceInterface"/>    
    </service>
</services>
