Initial implementation of XMPP Publish/Subscribe

Change-Id: I9930056b83004fa7a085f72f63ba973f9ec2d95b
diff --git a/protocols/xmpp/core/api/src/main/java/org/onosproject/xmpp/core/XmppController.java b/protocols/xmpp/core/api/src/main/java/org/onosproject/xmpp/core/XmppController.java
index 8b500a3..a16216d 100644
--- a/protocols/xmpp/core/api/src/main/java/org/onosproject/xmpp/core/XmppController.java
+++ b/protocols/xmpp/core/api/src/main/java/org/onosproject/xmpp/core/XmppController.java
@@ -46,18 +46,20 @@
     void removeXmppDeviceListener(XmppDeviceListener deviceListener);
 
     /**
-     * Register a listener for IQ stanza of XMPP protocol.
+     * Register a listener for IQ stanzas containing specific XML namespace.
      *
      * @param iqListener the listener to notify
+     * @param namespace the XML namespace to observe
      */
-    void addXmppIqListener(XmppIqListener iqListener);
+    void addXmppIqListener(XmppIqListener iqListener, String namespace);
 
     /**
-     * Unregister a listener for IQ stanza of XMPP protocol.
+     * Unregister a listener for IQ stanzas containing specific XML namespace.
      *
      * @param iqListener the listener to unregister
+     * @param namespace the XML namespace to observe
      */
-    void removeXmppIqListener(XmppIqListener iqListener);
+    void removeXmppIqListener(XmppIqListener iqListener, String namespace);
 
     /**
      * Register a listener for Message stanza of XMPP protocol.