Adding ability for the server to notify clients about GUI additions/removals.

Change-Id: I505f68c33cb9cf7b875b53792f8442ba0cf0662a
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index 9bfa3e3..3bf6c27 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -56,9 +56,10 @@
 @Service
 public class UiExtensionManager implements UiExtensionService, SpriteService {
 
-    private static final ClassLoader CL =
-            UiExtensionManager.class.getClassLoader();
+    private static final ClassLoader CL = UiExtensionManager.class.getClassLoader();
     private static final String CORE = "core";
+    private static final String GUI_ADDED = "guiAdded";
+    private static final String GUI_REMOVED = "guiRemoved";
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -146,6 +147,7 @@
             for (UiView view : extension.views()) {
                 views.put(view.id(), extension);
             }
+            UiWebSocketServlet.sendToAll(GUI_ADDED, null);
         }
     }
 
@@ -153,8 +155,8 @@
     public synchronized void unregister(UiExtension extension) {
         checkPermission(UI_WRITE);
         extensions.remove(extension);
-        extension.views().stream()
-                .map(UiView::id).collect(toSet()).forEach(views::remove);
+        extension.views().stream().map(UiView::id).collect(toSet()).forEach(views::remove);
+        UiWebSocketServlet.sendToAll(GUI_REMOVED, null);
     }
 
     @Override