[ONOS-6958] Add glyph registration java code

Change-Id: I954c790062f8ff5498c34c334827c4f695278a9e
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
index ea7e5ed..32f4981 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
@@ -27,6 +27,7 @@
 import org.onosproject.ui.UiConnection;
 import org.onosproject.ui.UiExtension;
 import org.onosproject.ui.UiExtensionService;
+import org.onosproject.ui.UiGlyph;
 import org.onosproject.ui.UiMessageHandler;
 import org.onosproject.ui.UiMessageHandlerFactory;
 import org.onosproject.ui.UiSessionToken;
@@ -77,6 +78,8 @@
 
     private static final String TOPO = "topo";
 
+    private static final String GLYPHS = "glyphs";
+
     private static final long MAX_AGE_MS = 30_000;
 
     private static final byte PING = 0x9;
@@ -436,9 +439,21 @@
             instances.add(instance);
         }
 
+        ArrayNode glyphInstances = arrayNode();
+        UiExtensionService uiExtensionService = directory.get(UiExtensionService.class);
+        for (UiGlyph glyph : uiExtensionService.getGlyphs()) {
+            ObjectNode glyphInstance = objectNode()
+                    .put(GlyphConstants.ID, glyph.id())
+                    .put(GlyphConstants.VIEWBOX, glyph.viewbox())
+                    .put(GlyphConstants.PATH, glyph.path());
+            glyphInstances.add(glyphInstance);
+        }
+
         ObjectNode payload = objectNode();
         payload.set(CLUSTER_NODES, instances);
+        payload.set(GLYPHS, glyphInstances);
         payload.put(USER, userName);
+
         sendMessage(BOOTSTRAP, payload);
     }