UI topo model - Started fleshing out the UiSharedTopologyModel
 - marked model listeners in TopolgyViewMessageHandler as deprecated.
 - UiWebSocket now creates a (currently inert) UiTopoSession.

Change-Id: Ic385d782a2f56a90565ad744128f8e469678bcc7
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 efe30843..4ddfc73 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
@@ -28,6 +28,7 @@
 import org.onosproject.ui.UiMessageHandlerFactory;
 import org.onosproject.ui.UiMessageHandler;
 import org.onosproject.ui.UiTopoOverlayFactory;
+import org.onosproject.ui.impl.topo.UiTopoSession;
 import org.onosproject.ui.topo.TopoConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,7 +38,7 @@
 import java.util.Map;
 
 /**
- * Web socket capable of interacting with the GUI.
+ * Web socket capable of interacting with the Web UI.
  */
 public class UiWebSocket
         implements UiConnection, WebSocket.OnTextMessage, WebSocket.OnControl {
@@ -50,14 +51,14 @@
     private static final byte PONG = 0xA;
     private static final byte[] PING_DATA = new byte[]{(byte) 0xde, (byte) 0xad};
 
+    private final ObjectMapper mapper = new ObjectMapper();
     private final ServiceDirectory directory;
+    private final UiTopoSession topoSession;
 
     private Connection connection;
     private FrameConnection control;
     private String userName;
 
-    private final ObjectMapper mapper = new ObjectMapper();
-
     private long lastActive = System.currentTimeMillis();
 
     private Map<String, UiMessageHandler> handlers;
@@ -72,6 +73,7 @@
     public UiWebSocket(ServiceDirectory directory, String userName) {
         this.directory = directory;
         this.userName = userName;
+        this.topoSession = new UiTopoSession(this);
     }
 
     @Override
@@ -115,6 +117,7 @@
         this.connection = connection;
         this.control = (FrameConnection) connection;
         try {
+            topoSession.init();
             createHandlersAndOverlays();
             sendInstanceData();
             log.info("GUI client connected");
@@ -129,6 +132,7 @@
 
     @Override
     public synchronized void onClose(int closeCode, String message) {
+        topoSession.destroy();
         destroyHandlersAndOverlays();
         log.info("GUI client disconnected [close-code={}, message={}]",
                  closeCode, message);