When adding a switch, add explicit TopologyElement for each port of the
switch. Otherwise, if the initial port state is embedded within the
TopologyElement for the switch, then "DELETE Port" event becomes no-op:
there was no corresponding "ADD Port" event.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
index 563d575..fa063ed 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
@@ -213,11 +213,16 @@
 			    // TODO publish ADD_SWITCH event here
 			    TopologyElement topologyElement =
 				new TopologyElement(sw.getId());
+			    datagridService.notificationSendTopologyElementAdded(topologyElement);
+			    // Add the ports
 			    // TODO: Add only ports that are UP?
 			    for (OFPhysicalPort port : sw.getPorts()) {
-				topologyElement.addSwitchPort(port.getPortNumber());
+				TopologyElement topologyElementPort =
+				    new TopologyElement(sw.getId(),
+							port.getPortNumber());
+				datagridService.notificationSendTopologyElementAdded(topologyElementPort);
 			    }
-			    datagridService.notificationSendTopologyElementAdded(topologyElement);
+
 			    // Add all links that might be connected already
 			    List<Link> links = linkStore.getLinks(HexString.toHexString(sw.getId()));
 			    // Add all reverse links as well