ONOS-4415 Remove OmsPort out of core.

Change-Id: Ic796c4e715789ba18f350f28e29db04dd537822f
diff --git a/drivers/default/pom.xml b/drivers/default/pom.xml
index 844289a..73afd90 100644
--- a/drivers/default/pom.xml
+++ b/drivers/default/pom.xml
@@ -55,13 +55,6 @@
                 <extensions>true</extensions>
                 <configuration>
                     <niceManifest>true</niceManifest>
-                    <instructions>
-                        <!-- TODO this can be removed once optical package
-                             has been separated out from the default drivers -->
-                        <Import-Package>
-                            *,org.onosproject.net.optical.device
-                        </Import-Package>
-                    </instructions>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java b/drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java
index 5c61583..63756a8 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java
@@ -17,12 +17,14 @@
 
 import org.onosproject.net.ChannelSpacing;
 import org.onosproject.net.OchSignal;
-import org.onosproject.net.OmsPort;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.behaviour.LambdaQuery;
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.driver.AbstractHandlerBehaviour;
+import org.onosproject.net.optical.OmsPort;
+
+import static org.onosproject.net.optical.device.OpticalDeviceServiceView.opticalView;
 
 import java.util.Collections;
 import java.util.Set;
@@ -46,7 +48,7 @@
 
     @Override
     public Set<OchSignal> queryLambdas(PortNumber port) {
-        DeviceService deviceService = this.handler().get(DeviceService.class);
+        DeviceService deviceService = opticalView(this.handler().get(DeviceService.class));
         Port p = deviceService.getPort(this.data().deviceId(), port);
 
         // Only OMS ports expose lambda resources
diff --git a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumDriversLoader.java b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumDriversLoader.java
index 76386cf..4b708c7 100644
--- a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumDriversLoader.java
+++ b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumDriversLoader.java
@@ -18,6 +18,8 @@
 
 import org.apache.felix.scr.annotations.Component;
 import org.onosproject.net.driver.AbstractDriverLoader;
+import org.onosproject.net.optical.OpticalDevice;
+import org.onosproject.net.optical.device.DefaultOpticalDevice;
 
 /**
  * Loader for Lumentum device drivers from specific xml.
@@ -25,6 +27,12 @@
 @Component(immediate = true)
 public class LumentumDriversLoader extends AbstractDriverLoader {
 
+    // OSGI: help bundle plugin discover runtime package dependency.
+    @SuppressWarnings("unused")
+    private OpticalDevice optical;
+    @SuppressWarnings("unused")
+    private DefaultOpticalDevice driver;
+
     public LumentumDriversLoader() {
         super("/lumentum-drivers.xml");
     }
diff --git a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumRoadmDeviceDescription.java b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumRoadmDeviceDescription.java
index 1e7a3af..0bf9b13 100644
--- a/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumRoadmDeviceDescription.java
+++ b/drivers/lumentum/src/main/java/org/onosproject/drivers/lumentum/LumentumRoadmDeviceDescription.java
@@ -27,7 +27,6 @@
 import org.onosproject.net.device.DeviceDescription;
 import org.onosproject.net.device.DeviceDescriptionDiscovery;
 import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.device.OmsPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.driver.AbstractHandlerBehaviour;
 import org.slf4j.Logger;
@@ -40,6 +39,7 @@
 import java.util.List;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -97,7 +97,7 @@
                             SparseAnnotations ann = DefaultAnnotations.builder()
                                     .set(AnnotationKeys.PORT_NAME, portDirection + "-" + portNumber)
                                     .build();
-                            PortDescription p = new OmsPortDescription(
+                            PortDescription p = omsPortDescription(
                                     PortNumber.portNumber(ports.size() + 1),
                                     true,
                                     LumentumSnmpDevice.START_CENTER_FREQ,
@@ -115,7 +115,7 @@
         SparseAnnotations annLineIn = DefaultAnnotations.builder()
                 .set(AnnotationKeys.PORT_NAME, "LINE IN")
                 .build();
-        ports.add(new OmsPortDescription(
+        ports.add(omsPortDescription(
                 PortNumber.portNumber(ports.size() + 1),
                 true,
                 LumentumSnmpDevice.START_CENTER_FREQ,
@@ -127,7 +127,7 @@
         SparseAnnotations annLineOut = DefaultAnnotations.builder()
                 .set(AnnotationKeys.PORT_NAME, "LINE OUT")
                 .build();
-        ports.add(new OmsPortDescription(
+        ports.add(omsPortDescription(
                 PortNumber.portNumber(ports.size() + 1),
                 true,
                 LumentumSnmpDevice.START_CENTER_FREQ,
diff --git a/drivers/lumentum/src/main/resources/lumentum-drivers.xml b/drivers/lumentum/src/main/resources/lumentum-drivers.xml
index ecdbc3f..e22b85a 100644
--- a/drivers/lumentum/src/main/resources/lumentum-drivers.xml
+++ b/drivers/lumentum/src/main/resources/lumentum-drivers.xml
@@ -24,6 +24,8 @@
                    impl="org.onosproject.drivers.lumentum.LumentumFlowRuleProgrammable"/>
         <behaviour api="org.onosproject.incubator.net.faultmanagement.alarm.AlarmConsumer"
                    impl="org.onosproject.drivers.lumentum.LumentumAlarmConsumer"/>
+        <behaviour api="org.onosproject.net.optical.OpticalDevice"
+                   impl="org.onosproject.net.optical.device.DefaultOpticalDevice"/>
     </driver>
 </drivers>