[ONOS-3851] Initial implementation of Web GUI of CPMan

- Revise chart model to provide default label
- Visualize control message stats per device

Change-Id: I88b8e63ce92114907bba185b1906569fa8cc0b83
diff --git a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/MetricsDatabaseTest.java b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/MetricsDatabaseTest.java
index 110ba10..e08e2e2 100644
--- a/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/MetricsDatabaseTest.java
+++ b/apps/cpman/app/src/test/java/org/onosproject/cpman/impl/MetricsDatabaseTest.java
@@ -149,11 +149,13 @@
         devMetricsMap = Maps.newHashMap();
 
         Set<DeviceId> devices = ImmutableSet.of(devId1, devId2);
-        devices.forEach(dev ->
-            devMetricsMap.putIfAbsent(dev,
-                    genMDbBuilder(type, ControlResource.CONTROL_MESSAGE_METRICS)
-                            .withResourceName(dev.toString())
-                            .build()));
+        devices.forEach(dev -> {
+            if (!devMetricsMap.containsKey(dev)) {
+                devMetricsMap.put(dev, genMDbBuilder(type, ControlResource.CONTROL_MESSAGE_METRICS)
+                        .withResourceName(dev.toString())
+                        .build());
+            }
+        });
 
         Map<String, Double> metrics1 = new HashMap<>();
         ControlResource.CONTROL_MESSAGE_METRICS.forEach(msgType ->