Use new OchPort/OmsPort/OduCltPort model

- depends on https://gerrit.onosproject.org/7170 Change-Id: I4cbda8bc1922fbdd4dac8de8d02294bad74b8058
- depends on https://gerrit.onosproject.org/8918 Change-Id: Ic796c4e715789ba18f350f28e29db04dd537822f
- depends on https://gerrit.onosproject.org/9001 Change-Id: I04324a72e48af84afdbfa32b84c8e57f39411000

Change-Id: I4986b6fc6deebdf9773754631c71d5898f046082
diff --git a/ecord/co/src/main/java/org/onosproject/ecord/co/BigSwitchManager.java b/ecord/co/src/main/java/org/onosproject/ecord/co/BigSwitchManager.java
index ee849c6..920150c 100644
--- a/ecord/co/src/main/java/org/onosproject/ecord/co/BigSwitchManager.java
+++ b/ecord/co/src/main/java/org/onosproject/ecord/co/BigSwitchManager.java
@@ -27,20 +27,17 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OduCltPort;
-import org.onosproject.net.OmsPort;
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.device.DefaultPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.edge.EdgePortEvent;
 import org.onosproject.net.edge.EdgePortListener;
 import org.onosproject.net.edge.EdgePortService;
+import org.onosproject.net.optical.OchPort;
+import org.onosproject.net.optical.OduCltPort;
+import org.onosproject.net.optical.OmsPort;
 import org.onosproject.store.serializers.KryoNamespaces;
 import org.onosproject.store.service.AtomicCounter;
 import org.onosproject.store.service.ConsistentMap;
@@ -52,6 +49,10 @@
 import java.util.List;
 import java.util.stream.Collectors;
 
+import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription;
+import static org.onosproject.net.optical.device.OduCltPortHelper.oduCltPortDescription;
+import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription;
+import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -94,6 +95,7 @@
 
     @Activate
     public void activate() {
+        deviceService = opticalView(deviceService);
         portMap = storageService.<ConnectPoint, Long>consistentMapBuilder()
                 .withName(PORT_MAP)
                 .withSerializer(SERIALIZER)
@@ -165,7 +167,7 @@
         switch (p.type()) {
             case OMS:
                 OmsPort oms = (OmsPort) p;
-                return new OmsPortDescription(
+                return omsPortDescription(
                         portNumber,
                         p.isEnabled(),
                         oms.minFrequency(),
@@ -174,7 +176,7 @@
                         annot.build());
             case OCH:
                 OchPort och = (OchPort) p;
-                return new OchPortDescription(
+                return ochPortDescription(
                         portNumber,
                         p.isEnabled(),
                         och.signalType(),
@@ -183,7 +185,7 @@
                         annot.build());
             case ODUCLT:
                 OduCltPort odu = (OduCltPort) p;
-                return new OduCltPortDescription(
+                return oduCltPortDescription(
                         portNumber,
                         p.isEnabled(),
                         odu.signalType(),
diff --git a/ecord/metro/src/main/java/org/onosproject/ecord/metro/MetroPathProvisioner.java b/ecord/metro/src/main/java/org/onosproject/ecord/metro/MetroPathProvisioner.java
index 31ff6ca..4957c0d 100644
--- a/ecord/metro/src/main/java/org/onosproject/ecord/metro/MetroPathProvisioner.java
+++ b/ecord/metro/src/main/java/org/onosproject/ecord/metro/MetroPathProvisioner.java
@@ -41,8 +41,6 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Link;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OduCltPort;
 import org.onosproject.net.OduSignalType;
 import org.onosproject.net.Path;
 import org.onosproject.net.Port;
@@ -60,6 +58,8 @@
 import org.onosproject.net.link.LinkEvent;
 import org.onosproject.net.link.LinkListener;
 import org.onosproject.net.link.LinkService;
+import org.onosproject.net.optical.OchPort;
+import org.onosproject.net.optical.OduCltPort;
 import org.onosproject.net.resource.BandwidthCapacity;
 import org.onosproject.net.resource.ContinuousResource;
 import org.onosproject.net.resource.Resource;
@@ -88,6 +88,7 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView;
 
 /**
  * Main component to configure metro area connectivity.
@@ -150,6 +151,7 @@
 
     @Activate
     protected void activate() {
+        deviceService = opticalView(deviceService);
         appId = coreService.registerApplication("org.onosproject.ecord.metro");
 
         idCounter = storageService.atomicCounterBuilder()