Simplifying the use-model of AbstractDriverLoader.

Change-Id: Iaf19ce92c7e153b5477340abb8e7650d8434ca86

Simplifying the use-model of AbstractDriverLoader.

Change-Id: Iaf19ce92c7e153b5477340abb8e7650d8434ca86
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();
-
 }