<?xml version="1.0" standalone="yes"?>

<!DOCTYPE applera-services [

  <!ELEMENT applera-services (service-provider+)>

    <!ELEMENT service-provider (interface*, implementation+)>
    <!ATTLIST service-provider
      name      CDATA #REQUIRED
      interface CDATA #IMPLIED
      default   CDATA #REQUIRED>

      <!ELEMENT interface (#PCDATA)>
      <!ELEMENT implementation (service-param*)>
      <!ATTLIST implementation
        type CDATA #REQUIRED
        mode CDATA #IMPLIED>

        <!ELEMENT service-param (#PCDATA | service-param)*>
        <!ATTLIST service-param
          name CDATA #REQUIRED
          type CDATA #IMPLIED>

]>


<applera-services>

    <service-provider name="ActionGroupSP"
        default="Local">
        <interface>
              com.apldbio.core.security.fac.ActionGroupSP
        </interface>
        <implementation type="Local" mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.fac.impl.ActionGroupSPImpl
            </service-param>
        </implementation>
        <implementation type="RequestResponse">
        </implementation>
        <implementation type="EJB">
        <service-param name="container">TransactionalContainerSP</service-param>
        </implementation>
    </service-provider>

    <service-provider name="DerbyDataSource" default="Local">
        <interface>com.apldbio.core.transaction.DataSourceAdmin</interface>
        <implementation type="Local" mode="session">
            <service-param name="class">com.apldbio.core.transaction.derby.DerbyNewInstanceDataSource</service-param>
            <service-param name="url">derbyIA</service-param>
            <service-param name="serialize-data">false</service-param>
            <service-param name="derby.system.home">F:/Programs/IA-2113/iaDerby</service-param>
        </implementation>
    </service-provider>

    <service-provider name="SQLUtil"
        interface="com.apldbio.core.security.db.SQLUtil"
        default="Local">
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.db.SQLUtilImpl
            </service-param>

        </implementation>

        <implementation type="RequestResponse">
        </implementation>
    </service-provider>


    <service-provider name="AuthenticationPolicySP"
        interface="com.apldbio.core.security.auth.AuthenticationPolicySP"
        default="Local">
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.auth.impl.AuthenticationPolicySPImpl
            </service-param>


        </implementation>

        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="ProductSP"
        default="Local">
        <interface>
            com.apldbio.core.security.fac.ProductSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.fac.impl.TestProductMgmtSPImpl
            </service-param>


        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="ApplicationSP"
        default="Local">
        <interface>
            com.apldbio.core.security.fac.ApplicationSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.fac.impl.TestProductMgmtSPImpl
            </service-param>


        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="JobTypeSP"
        default="Local">
        <interface>
            com.apldbio.core.security.JobTypeSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.impl.TestJobTypeSPImpl
            </service-param>

        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="UserSP"
        default="Local">
        <interface>
            com.apldbio.core.security.UserSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.impl.TestUserSPImpl
            </service-param>

        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="LoggedInUserServer"
        default="Local">
        <interface>
            com.apldbio.core.security.auth.LoggedInUserServer
        </interface>
        <interface>
            com.apldbio.core.security.auth.impl.AdministratableLoggedInUserServer
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.auth.impl.LoggedInUserServerImpl
            </service-param>
        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="DataGroupSP"
        default="Local">
        <interface>
            com.apldbio.core.security.DataGroupSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.impl.TestDataGroupSPImpl
            </service-param>

        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="WorkGroupSP"
        default="Local">
        <interface>
            com.apldbio.core.security.WorkGroupSP
        </interface>
        <interface>
            com.apldbio.core.security.Clearable
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.impl.TestWorkGroupSPImpl
            </service-param>


        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="SecurityEventLogSP"
        default="Local">
        <interface>
            com.apldbio.core.security.log.SecurityEventLogSP
        </interface>
        <implementation
            type="Local"
            mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.log.impl.SecurityEventLogSPImpl
            </service-param>

        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="SecureActionRunner" default="Local">
        <interface>
            com.apldbio.core.security.fac.SecureActionRunner
        </interface>
        <implementation type="Local" mode="singleton">
            <service-param name="class">
                com.apldbio.core.security.fac.impl.SecureActionRunnerImpl
            </service-param>
        </implementation>
        <implementation type="RequestResponse">
        </implementation>
    </service-provider>

    <service-provider name="javax.sql.DataSource" interface="javax.sql.DataSource" default="Local">
        <implementation type="Local" mode="session">
            <service-param name="class">com.apldbio.core.transaction.oracle.OracleNewInstanceDataSource</service-param>
            <service-param name="url">db</service-param>
            <service-param name="serialize-data">false</service-param>
        </implementation>
    </service-provider>

    <service-provider name="DataSourceLocal" interface="javax.sql.DataSource" default="Local">
        <implementation type="Local" mode="session">
            <service-param name="class">com.apldbio.core.transaction.oracle.OracleNewInstanceDataSource</service-param>
            <service-param name="url">installDB</service-param>
            <service-param name="serialize-data">false</service-param>
        </implementation>
    </service-provider>

    <service-provider name="TransactionalContainerSP" interface="com.apldbio.core.proxy.ServiceContainerSP" default="Local">
        <implementation type="Local" mode="new-instance">
            <service-param name="class">com.apldbio.core.transaction.servicefacade.TransactionalContainerSP</service-param>
        </implementation>
        <implementation type="EJB">
            <service-param name="class">com.apldbio.core.transaction.servicefacade.j2ee.ServiceFacadeBean</service-param>
            <service-param name="pre-invoker">com.apldbio.core.transaction.orsession.ClientTransactionIDPropagationInvoker</service-param>
            <service-param name="jndi-name">ServiceFacadeBean</service-param>
            <service-param name="home-interface">com.apldbio.core.proxy.ejb.container.ServiceContainerSPHome</service-param>
            <service-param name="remote-interface">com.apldbio.core.proxy.ejb.container.ServiceContainerSPRemote</service-param>
        </implementation>
    </service-provider>

    <service-provider name="UserSessionSP" interface="com.apldbio.core.usercontext.UserSessionSP" default="Local">
        <implementation type="Local" mode="singleton">
            <service-param name="class">com.apldbio.core.usersession.UserSessionServiceProvider</service-param>
        </implementation>
    </service-provider>


    <service-provider name="PageDataSource" interface="javax.sql.DataSource" default="Local">
        <implementation type="Local" mode="session">
            <service-param name="class">com.apldbio.core.transaction.oracle.OracleNewInstanceDataSource</service-param>
            <service-param name="url">pageDB</service-param>
            <service-param name="serialize-data">false</service-param>
        </implementation>
    </service-provider>

    <service-provider name="AuditConfigSP" default="Local">
        <interface>com.apldbio.core.audit.AuditConfigSP</interface>
        <implementation type="Local" mode="singleton">
            <service-param name="class">com.apldbio.core.audit.impl.AuditConfigSPImpl</service-param>
        </implementation>
        <implementation type="RequestResponse"></implementation>
        <implementation type="EJB">
            <service-param name="container">TransactionalContainerSP</service-param>
        </implementation>
    </service-provider>

</applera-services>
