[ONOS-3535] Accumulate control message stats using monitor service

- Augment the control message class to have device id
- Initial implementation of accumulating control message stats
- Add more adpator for unit test
- Change Collection<ControlMessage> to Set<ControlMessage>
- Fix the arithmatic exception
- Fix some javadoc warnings

Change-Id: I2abaf0d91edca5419b26f1c5a69246bcdb9201bf
diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java
index c504f5a..fc74892 100644
--- a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java
+++ b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageEventTest.java
@@ -15,36 +15,40 @@
  */
 package org.onosproject.cpman.message;
 
+import com.google.common.collect.Sets;
 import org.junit.Test;
 import org.onosproject.cpman.ControlMessage;
 import org.onosproject.cpman.DefaultControlMessage;
 import org.onosproject.event.AbstractEventTest;
+import org.onosproject.net.DeviceId;
 
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.Set;
 
-import static org.onosproject.cpman.ControlMessage.Type.*;
+import static org.onosproject.cpman.ControlMessage.Type.INBOUND_PACKET;
+import static org.onosproject.cpman.ControlMessage.Type.OUTBOUND_PACKET;
 
 /**
  * Tests of the control message event.
  */
 public class ControlMessageEventTest extends AbstractEventTest {
 
-    private ControlMessage createControlMessage(ControlMessage.Type type) {
-        return new DefaultControlMessage(type, 0L, 0L, 0L, 0L);
+    private ControlMessage createControlMessage(ControlMessage.Type type,
+                                                DeviceId deviceId) {
+        return new DefaultControlMessage(type, deviceId, 0L, 0L, 0L, 0L);
     }
 
-    private Collection<ControlMessage> createControlMessages() {
-        Collection<ControlMessage> controlMessages = new ArrayList<>();
-        controlMessages.add(createControlMessage(INBOUND_PACKET));
-        controlMessages.add(createControlMessage(OUTBOUND_PACKET));
+    private Set<ControlMessage> createControlMessages() {
+        final DeviceId deviceId = DeviceId.deviceId("of:0000000000000001");
+        Set<ControlMessage> controlMessages = Sets.newConcurrentHashSet();
+        controlMessages.add(createControlMessage(INBOUND_PACKET, deviceId));
+        controlMessages.add(createControlMessage(OUTBOUND_PACKET, deviceId));
         return controlMessages;
     }
 
     @Override
     @Test
     public void withoutTime() {
-        Collection<ControlMessage> cms = createControlMessages();
+        Set<ControlMessage> cms = createControlMessages();
         long before = System.currentTimeMillis();
         ControlMessageEvent event =
                 new ControlMessageEvent(ControlMessageEvent.Type.STATS_UPDATE, cms);
diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java
deleted file mode 100644
index 23976c4..0000000
--- a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/ControlMessageServiceAdaptor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2016 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.cpman.message;
-
-/**
- * Test adapter for control message service.
- */
-public class ControlMessageServiceAdaptor implements ControlMessageService {
-    @Override
-    public void addListener(ControlMessageListener listener) {
-    }
-
-    @Override
-    public void removeListener(ControlMessageListener listener) {
-    }
-}
diff --git a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java
index 1bc114f..9f4572e 100644
--- a/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java
+++ b/apps/cpman/api/src/test/java/org/onosproject/cpman/message/DefaultControlMessageTest.java
@@ -17,6 +17,7 @@
 
 import org.junit.Test;
 import org.onosproject.cpman.DefaultControlMessage;
+import org.onosproject.net.DeviceId;
 
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertThat;
@@ -42,12 +43,13 @@
      */
     @Test
     public void testBasic() {
+        final DeviceId deviceId = DeviceId.deviceId("of:0000000000000001");
         final DefaultControlMessage cm =
-                new DefaultControlMessage(INBOUND_PACKET, 0L, 1L, 2L, 3L);
+                new DefaultControlMessage(INBOUND_PACKET, deviceId, 0L, 1L, 2L, 3L);
         assertThat(cm.type(), is(INBOUND_PACKET));
         assertThat(cm.load(), is(0L));
         assertThat(cm.rate(), is(1L));
         assertThat(cm.count(), is(2L));
-        assertThat(cm.timeStamp(), is(3L));
+        assertThat(cm.timestamp(), is(3L));
     }
 }