<?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="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:ext="http://geronimo.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">

    <ext:property-placeholder placeholder-prefix="$(" placeholder-suffix=")"/>

    <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]" ignore-missing-locations="true">
        <ext:default-properties>
            <ext:property name="featuresRepositories" value=""/>
            <ext:property name="featuresBoot" value=""/>
        </ext:default-properties>
        <ext:location>file:$(karaf.home)/etc/org.apache.felix.karaf.features.cfg</ext:location>
    </ext:property-placeholder>

    <bean id="featuresService" class="org.apache.felix.karaf.features.internal.FeaturesServiceImpl" init-method="start" destroy-method="stop">
        <property name="urls" value="$[featuresRepositories]" />
        <property name="boot" value="$[featuresBoot]" />
        <property name="configAdmin" ref="configAdmin" />
        <property name="preferences" ref="preferences" />
        <property name="bundleContext" ref="blueprintBundleContext" />
    </bean>

    <reference-list id="featuresListeners" interface="org.apache.felix.karaf.features.FeaturesListener" availability="optional">
        <reference-listener ref="featuresService"
                            bind-method="registerListener"
                            unbind-method="unregisterListener" />
    </reference-list>

    <reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />

    <reference id="preferences" interface="org.osgi.service.prefs.PreferencesService" availability="optional"/>

    <service ref="featuresService" interface="org.apache.felix.karaf.features.FeaturesService" />

</blueprint>
