<!--
  ~ Copyright 2015-present Open Networking Foundation
  ~
  ~ 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.distributedprimitives.cli.CounterTestIncrementCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.SetTestAddCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.SetTestGetCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.SetTestRemoveCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.TransactionalMapTestGetCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.TransactionalMapTestPutCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.CounterTestCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.WorkQueueTestCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.ConsistentMapTestCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.EventuallyConsistentMapTestCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.AtomicValueTestCommand"/>
        </command>
        <command>
            <action class="org.onosproject.distributedprimitives.cli.LeaderElectorTestCommand"/>
        </command>
    </command-bundle>

</blueprint>
