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

-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:ctx="http://www.springframework.org/schema/context"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util.xsd
  http://www.springframework.org/schema/osgi
  http://www.springframework.org/schema/osgi/spring-osgi.xsd
  http://www.springframework.org/schema/osgi-compendium
  http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd"
       default-autowire="no"
       default-dependency-check="none"
       default-init-method="init"
       default-destroy-method="destroy">

    <bean id="osgiCommandRegistry" class="org.apache.servicemix.kernel.gshell.core.OsgiCommandRegistry">
        <constructor-arg ref="commandRegistry" />
    </bean>

    <bean id="osgiAliasRegistry" class="org.apache.servicemix.kernel.gshell.core.OsgiAliasRegistry">
        <constructor-arg ref="aliasRegistry" />
    </bean>

    <osgi:list id="osgiCommands" interface="org.apache.geronimo.gshell.command.Command" cardinality="0..N">
        <osgi:listener ref="osgiCommandRegistry" bind-method="register" unbind-method="unregister" />
    </osgi:list>

    <osgi:list id="osgiLinkCommands" interface="org.apache.geronimo.gshell.command.Link" cardinality="0..N">
        <osgi:listener ref="osgiCommandRegistry" bind-method="register" unbind-method="unregister" />
    </osgi:list>

    <osgi:list id="osgiAliases" interface="org.apache.geronimo.gshell.command.Alias" cardinality="0..N">
        <osgi:listener ref="osgiAliasRegistry" bind-method="register" unbind-method="unregister" />
    </osgi:list>

    <osgi:service ref="localShell" interface="org.apache.geronimo.gshell.shell.Shell">
    </osgi:service>

    <osgi:service ref="commandLineExecutor" interface="org.apache.geronimo.gshell.commandline.CommandLineExecutor">
    </osgi:service>

    <osgix:cm-properties id="cmProps" persistent-id="org.apache.servicemix.shell">
        <prop key="sshPort">8101</prop>
        <prop key="sshRealm">servicemix</prop>
        <prop key="hostKey">${servicemix.base}/etc/host.key</prop>
    </osgix:cm-properties>

    <ctx:property-placeholder properties-ref="cmProps" />
    
</beans>