Moving Multicast subsystem into app and refactoring APIs to support multihomed sources and sinks

Change-Id: I95d07b163c619b018ff106159b134ff214aa2ffd
diff --git a/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
new file mode 100644
index 0000000..7ab4273
--- /dev/null
+++ b/apps/mcast/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -0,0 +1,49 @@
+<!--
+~ Copyright 2018-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.mcast.cli.McastHostJoinCommand"/>
+            <optional-completers>
+                <entry key="-srcs" value-ref="deviceIdCompleter"/>
+                <entry key="-sinks" value-ref="hostIdCompleter"/>
+            </optional-completers>
+        </command>
+        <command>
+            <action class="org.onosproject.mcast.cli.McastShowHostCommand"/>
+        </command>
+        <command>
+            <action class="org.onosproject.mcast.cli.McastHostDeleteCommand"/>
+            <optional-completers>
+                <entry key="-cps" value-ref="deviceIdCompleter"/>
+                <entry key="-h" value-ref="hostIdCompleter"/>
+            </optional-completers>
+        </command>
+        <command>
+            <action class="org.onosproject.mcast.cli.McastSourceDeleteCommand"/>
+            <optional-completers>
+                <entry key="-src" value-ref="deviceIdCompleter"/>
+            </optional-completers>
+        </command>
+
+    </command-bundle>
+
+    <bean id="hostIdCompleter" class="org.onosproject.cli.net.HostIdCompleter"/>
+    <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/>
+
+</blueprint>