<?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:util="http://www.springframework.org/schema/util"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.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"
       default-autowire="no"
       default-dependency-check="none"
       default-init-method="init"
       default-destroy-method="destroy">

    <bean id="localShellWrapped" parent="shell" init-method="init" destroy-method="close"/>

    <bean id="localShell" class="org.apache.servicemix.kernel.gshell.core.ShellWrapper">
        <constructor-arg ref="localShellWrapped" />
    </bean>

    <osgi:reference id="mainService" interface="org.apache.servicemix.kernel.main.spi.MainService"/>

    <bean id="localConsole" class="org.apache.servicemix.kernel.gshell.core.LocalConsole">
        <property name="createLocalShell" value="${servicemix.startLocalConsole}"/>
        <property name="shell" ref="localShell"/>
        <property name="mainService" ref="mainService" />
    </bean>

</beans>