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,
