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();
-
}
diff --git a/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java
index d7b8b03..1a19d19 100644
--- a/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java
+++ b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java
@@ -19,23 +19,12 @@
import org.apache.felix.scr.annotations.Component;
import org.onosproject.net.driver.AbstractDriverLoader;
-import java.io.InputStream;
-
/**
- * Loader for Ciena device drivers from specific xml.
+ * Loader for Ciena device drivers.
*/
@Component(immediate = true)
public class CienaDriversLoader extends AbstractDriverLoader {
-
- private static final String DRIVERS_XML = "/ciena-drivers.xml";
-
- @Override
- protected InputStream loadXmlDriversStream() {
- return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
- }
-
- @Override
- protected ClassLoader getClassLoaderInstance() {
- return getClass().getClassLoader();
+ public CienaDriversLoader() {
+ super("/ciena-drivers.xml");
}
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java b/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java
index d7d13f6..fcfd171 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java
@@ -21,24 +21,13 @@
import org.onosproject.net.driver.AbstractDriverLoader;
import org.onosproject.net.driver.DefaultDriverProviderService;
-import java.io.InputStream;
-
/**
- * Loader for default device drivers from specific xml.
+ * Loader for default device drivers.
*/
@Service
@Component(immediate = true)
public class DefaultDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService {
-
- private static final String DRIVERS_XML = "/onos-drivers.xml";
-
- @Override
- protected InputStream loadXmlDriversStream() {
- return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
- }
-
- @Override
- protected ClassLoader getClassLoaderInstance() {
- return getClass().getClassLoader();
+ public DefaultDriversLoader() {
+ super("/onos-drivers.xml");
}
}
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java
index db7bae1..78d6fbd 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java
@@ -19,23 +19,12 @@
import org.apache.felix.scr.annotations.Component;
import org.onosproject.net.driver.AbstractDriverLoader;
-import java.io.InputStream;
-
/**
- * Loader for Fujitsu device drivers from specific xml.
+ * Loader for Fujitsu device drivers.
*/
@Component(immediate = true)
public class FujitsuDriversLoader extends AbstractDriverLoader {
-
- private static final String DRIVERS_XML = "/fujitsu-drivers.xml";
-
- @Override
- protected InputStream loadXmlDriversStream() {
- return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
- }
-
- @Override
- protected ClassLoader getClassLoaderInstance() {
- return getClass().getClassLoader();
+ public FujitsuDriversLoader() {
+ super("/fujitsu-drivers.xml");
}
}
diff --git a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java
index daea8bb..1e6e903 100644
--- a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java
+++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java
@@ -19,23 +19,12 @@
import org.apache.felix.scr.annotations.Component;
import org.onosproject.net.driver.AbstractDriverLoader;
-import java.io.InputStream;
-
/**
- * Loader for NETCONF device drivers from specific xml.
+ * Loader for NETCONF device drivers.
*/
@Component(immediate = true)
public class NetconfDriversLoader extends AbstractDriverLoader {
-
- private static final String DRIVERS_XML = "/netconf-drivers.xml";
-
- @Override
- protected InputStream loadXmlDriversStream() {
- return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
- }
-
- @Override
- protected ClassLoader getClassLoaderInstance() {
- return getClass().getClassLoader();
+ public NetconfDriversLoader() {
+ super("/netconf-drivers.xml");
}
}
diff --git a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java
index 960a4c3..32a8a52 100644
--- a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java
+++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java
@@ -19,23 +19,12 @@
import org.apache.felix.scr.annotations.Component;
import org.onosproject.net.driver.AbstractDriverLoader;
-import java.io.InputStream;
-
/**
- * Loader for OVSDB device drivers from specific xml.
+ * Loader for OVSDB device drivers.
*/
@Component(immediate = true)
public class OvsdbDriversLoader extends AbstractDriverLoader {
-
- private static final String DRIVERS_XML = "/ovsdb-drivers.xml";
-
- @Override
- protected InputStream loadXmlDriversStream() {
- return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
- }
-
- @Override
- protected ClassLoader getClassLoaderInstance() {
- return getClass().getClassLoader();
+ public OvsdbDriversLoader() {
+ super("/ovsdb-drivers.xml");
}
}