Added endPortA/B to UiLink class.
Removed 'online' property from UiDevice, choosing to look up availability on the fly from device service.

Change-Id: Ib14ab371a11c442a30cf407f11d366271d087c68
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
index 6f436a5..8ff3bb6 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
@@ -281,7 +281,7 @@
                 .put("id", device.idAsString())
                 .put("nodeType", DEVICE)
                 .put("type", device.type())
-                .put("online", device.isOnline())
+                .put("online", deviceService.isAvailable(device.id()))
                 .put("master", nullIsEmpty(device.master()))
                 .put("layer", device.layer());
 
@@ -364,11 +364,20 @@
 
     private ObjectNode json(UiSynthLink sLink) {
         UiLink uLink = sLink.link();
-        return objectNode()
+        ObjectNode data = objectNode()
                 .put("id", uLink.idAsString())
                 .put("epA", uLink.endPointA())
                 .put("epB", uLink.endPointB())
                 .put("type", uLink.type());
+        String pA = uLink.endPortA();
+        String pB = uLink.endPortB();
+        if (pA != null) {
+            data.put("portA", pA);
+        }
+        if (pB != null) {
+            data.put("portB", pB);
+        }
+        return data;
     }