<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2019, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
  ~
  ~ Licensed 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.
  -->

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean class="org.wso2.carbon.identity.api.server.application.management.v1.core.ServerApplicationManagementService"/>
    <bean class="org.wso2.carbon.identity.api.server.application.management.v1.core.ServerApplicationMetadataService"/>
    <bean class="org.wso2.carbon.identity.api.server.application.management.v1.impl.ApplicationsApiServiceImpl"/>

    <bean id="applicationManagementServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="applicationManagementService" ref="applicationManagementServiceFactoryBean"/>
    </bean>
    <bean id="oauthAdminServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="oauthAdminService" ref="oauthAdminServiceFactoryBean"/>
    </bean>
    <bean id="stsAdminServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="stsAdminService" ref="stsAdminServiceFactoryBean"/>
    </bean>
    <bean id="samlSsoConfigServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="samlssoConfigService" ref="samlSsoConfigServiceFactoryBean"/>
    </bean>
    <bean id="templateManagerServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="templateManager" ref="templateManagerServiceFactoryBean"/>
    </bean>
    <bean id="corsMgtServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="corsManagementService" ref="corsMgtServiceFactoryBean"/>
    </bean>
    <bean id="realmServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="realmService" ref="realmServiceFactoryBean"/>
    </bean>
    <bean id="authorizedAPIManagementServiceHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="authorizedAPIManagementService" ref="authorizedAPIManagerServiceFactoryBean"/>
    </bean>
    <bean id="apiResourceManagerHolderBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.ApplicationManagementServiceHolder">
        <property name="apiResourceManager" ref="apiResourceManagerServiceFactoryBean"/>
    </bean>

    <bean id="applicationManagementServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.ApplicationManagementOSGiServiceFactory"/>
    <bean id="oauthAdminServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.OAuthAdminOSGiServiceFactory"/>
    <bean id="stsAdminServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.STSAdminOSGiServiceFactory"/>
    <bean id="samlSsoConfigServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.SAMLSSOConfigOSGiServiceFactory"/>
    <bean id="templateManagerServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.TemplateManagementOSGiServiceFactory"/>
    <bean id="corsMgtServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.CORSMgtOGSiServiceFactory"/>
    <bean id="realmServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.RealmServiceOSGIServiceFactory">
    </bean>
    <bean id="authorizedAPIManagerServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.AuthorizedAPIMgtOSGiServiceFactory" />
    <bean id="apiResourceManagerServiceFactoryBean"
          class="org.wso2.carbon.identity.api.server.application.management.common.factory.APIResourceMgtOSGiServiceFactory"/>
</beans>
