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

<blueprint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <reference id="persistenceService" interface="org.apache.unomi.persistence.spi.PersistenceService"/>
    <reference id="configSharingService" interface="org.apache.unomi.api.services.ConfigSharingService"/>

    <bean id="importConfigurationServiceImpl" class="org.apache.unomi.router.services.ImportConfigurationServiceImpl"
          init-method="postConstruct" destroy-method="preDestroy">
        <property name="persistenceService" ref="persistenceService"/>
        <property name="bundleContext" ref="blueprintBundleContext"/>
    </bean>
    <service id="importConfigurationService" ref="importConfigurationServiceImpl">
        <interfaces>
            <value>org.apache.unomi.router.api.services.ImportExportConfigurationService</value>
            <value>org.osgi.framework.SynchronousBundleListener</value>
        </interfaces>
        <service-properties>
            <entry key="configDiscriminator" value="IMPORT"/>
        </service-properties>
    </service>

    <bean id="exportConfigurationServiceImpl" class="org.apache.unomi.router.services.ExportConfigurationServiceImpl"
          init-method="postConstruct" destroy-method="preDestroy">
        <property name="persistenceService" ref="persistenceService"/>
        <property name="bundleContext" ref="blueprintBundleContext"/>
    </bean>
    <service id="exportConfigurationService" ref="exportConfigurationServiceImpl">
        <interfaces>
            <value>org.osgi.framework.SynchronousBundleListener</value>
            <value>org.apache.unomi.router.api.services.ImportExportConfigurationService</value>
        </interfaces>
        <service-properties>
            <entry key="configDiscriminator" value="EXPORT"/>
        </service-properties>
    </service>

    <bean id="profileImportServiceImpl" class="org.apache.unomi.router.services.ProfileImportServiceImpl"
          init-method="postConstruct" destroy-method="preDestroy">
        <property name="persistenceService" ref="persistenceService"/>
        <property name="bundleContext" ref="blueprintBundleContext"/>
    </bean>
    <service id="profileImportService" ref="profileImportServiceImpl">
        <interfaces>
            <value>org.osgi.framework.SynchronousBundleListener</value>
            <value>org.apache.unomi.router.api.services.ProfileImportService</value>
        </interfaces>
    </service>

    <bean id="profileExportServiceImpl" class="org.apache.unomi.router.services.ProfileExportServiceImpl"
          init-method="postConstruct" destroy-method="preDestroy">
        <property name="persistenceService" ref="persistenceService"/>
        <property name="configSharingService" ref="configSharingService" />
        <property name="bundleContext" ref="blueprintBundleContext"/>
    </bean>
    <service id="profileExportService" ref="profileExportServiceImpl">
        <interfaces>
            <value>org.osgi.framework.SynchronousBundleListener</value>
            <value>org.apache.unomi.router.api.services.ProfileExportService</value>
        </interfaces>
    </service>

</blueprint>
