<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ 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.
  -->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
        <command>
            <action class="org.onosproject.provider.nil.cli.NullControlCommand"/>
            <completers>
                <ref component-id="startStopCompleter"/>
                <ref component-id="topoShapeCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.provider.nil.cli.NullLinkCommand"/>
            <completers>
                <ref component-id="linkSrcCompleter"/>
                <ref component-id="linkDstCompleter"/>
                <ref component-id="upDownCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.provider.nil.cli.NullDeviceCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <ref component-id="upDownCompleter"/>
                <null/>
            </completers>
        </command>
    </command-bundle>

    <bean id="startStopCompleter" class="org.onosproject.cli.StartStopCompleter"/>
    <bean id="upDownCompleter" class="org.onosproject.cli.UpDownCompleter"/>
    <bean id="topoShapeCompleter" class="org.onosproject.provider.nil.cli.TopologyShapeCompleter"/>
    <bean id="linkSrcCompleter" class="org.onosproject.cli.net.LinkSrcCompleter"/>
    <bean id="linkDstCompleter" class="org.onosproject.cli.net.LinkDstCompleter"/>
    <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/>

</blueprint>
