<?xml version="1.0" standalone="yes"?>
<!DOCTYPE service-provider [
	<!ELEMENT service-provider (service-provider-elements, service-call-group+)>
	<!ATTLIST service-provider
	spn CDATA #REQUIRED
>
	<!ELEMENT service-provider-elements (proxy-interface-class?, validator, validator-configuration?, translator, executor-strategy, executor-strategy-configuration?, primary-sp-strategy?, secondary-sp-strategy?)>
	<!ELEMENT proxy-interface-class (#PCDATA)>
	<!ELEMENT service-call-group (service-call+)>
	<!ATTLIST service-call-group
	scgn CDATA #REQUIRED
>
	<!ELEMENT service-call (method-name, service-provider-class, override-validator?, override-validator-configuration?, override-translator?, override-executor-strategy?, override-executor-strategy-configuration?)>
	<!ATTLIST service-call
	scn CDATA #REQUIRED
>
	<!ELEMENT method-name (#PCDATA)>
	<!ELEMENT service-provider-class (#PCDATA)>
	<!ELEMENT validator (#PCDATA)>
	<!ELEMENT override-validator (#PCDATA)>
	<!ELEMENT validator-configuration (name-value-pairs)>
	<!ELEMENT override-validator-configuration (name-value-pairs)>
	<!ELEMENT translator (#PCDATA)>
	<!ELEMENT override-translator (#PCDATA)>
	<!ELEMENT executor-strategy (#PCDATA)>
	<!ELEMENT override-executor-strategy (#PCDATA)>
	<!ELEMENT executor-strategy-configuration (name-value-pairs)>
	<!ELEMENT override-executor-strategy-configuration (name-value-pairs)>
	<!ELEMENT primary-sp-strategy (sp-strategy-name, sp-strategy-config?)>
	<!ELEMENT secondary-sp-strategy (sp-strategy-name, sp-strategy-config?)>
	<!ELEMENT sp-strategy-name (#PCDATA)>
	<!ELEMENT sp-strategy-config (name-value-pairs)>
	<!ELEMENT name-value-pairs (name, ((value, (boolean | char | byte | short | int | long | float | double | string)) | name-value-pairs))*>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT value (#PCDATA)>
	<!ELEMENT boolean EMPTY>
	<!ELEMENT char EMPTY>
	<!ELEMENT byte EMPTY>
	<!ELEMENT short EMPTY>
	<!ELEMENT int EMPTY>
	<!ELEMENT long EMPTY>
	<!ELEMENT float EMPTY>
	<!ELEMENT double EMPTY>
	<!ELEMENT string EMPTY>
]>
<service-provider spn="TypeSP">
    <service-provider-elements>
        <proxy-interface-class>com.apldbio.core.audit.types.TypeSP</proxy-interface-class>
        <validator>
            com.apldbio.core.reqres.validator.DeclarativeValidator
        </validator>
        <translator>
            com.apldbio.core.reqres.translator.DeclarativeTranslator
        </translator>
        <executor-strategy>
            com.apldbio.core.reqres.executor.SingletonExecutorStrategy
        </executor-strategy>
       <executor-strategy-configuration>
            <name-value-pairs>
                <name>instanceMethodName</name>
                <value>instance</value>
                <string/>
            </name-value-pairs>
        </executor-strategy-configuration>
    </service-provider-elements>

    <service-call-group scgn="TypeSP">


        <service-call scn="insert">
            <method-name>insert</method-name>
            <service-provider-class>
                com.apldbio.core.audit.types.impl.TypeSPImpl
            </service-provider-class>
        </service-call>


        <service-call scn="update">
            <method-name>update</method-name>
            <service-provider-class>
                com.apldbio.core.audit.types.impl.TypeSPImpl
            </service-provider-class>
        </service-call>


        <service-call scn="query">
            <method-name>query</method-name>
            <service-provider-class>
                com.apldbio.core.audit.types.impl.TypeSPImpl
            </service-provider-class>
        </service-call>

          </service-call-group>
</service-provider>
