diff --git a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
index e07c65e..d97289c 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
@@ -23,31 +23,37 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.InputStream;
-
 /**
- * Bootstrap for built in drivers.
+ * Abstract boot-strapper for loading and registering driver definitions.
  */
 @Component
 public abstract class AbstractDriverLoader {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    //private static final String DRIVERS_XML = "/onos-drivers.xml";
-
     private DriverProvider provider;
+    private final String path;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected DriverAdminService driverAdminService;
 
+    /**
+     * Creates a new loader for resource with the specified path.
+     *
+     * @param path drivers definition XML resource path
+     */
+    protected AbstractDriverLoader(String path) {
+        this.path = path;
+    }
+
     @Activate
     protected void activate() {
         try {
-            provider = new XmlDriverLoader(getClassLoaderInstance())
-                    .loadDrivers(loadXmlDriversStream(), driverAdminService);
+            provider = new XmlDriverLoader(getClass().getClassLoader())
+                    .loadDrivers(getClass().getResourceAsStream(path), driverAdminService);
             driverAdminService.registerProvider(provider);
         } catch (Exception e) {
-            log.error("Unable to load default drivers", e);
+            log.error("Unable to load {} driver definitions", path, e);
         }
         log.info("Started");
     }
@@ -58,8 +64,4 @@
         log.info("Stopped");
     }
 
-    protected abstract InputStream loadXmlDriversStream();
-
-    protected abstract ClassLoader getClassLoaderInstance();
-
 }
