Committed by
Gerrit Code Review
Simplifying the use-model of AbstractDriverLoader.
Change-Id: Iaf19ce92c7e153b5477340abb8e7650d8434ca86 Simplifying the use-model of AbstractDriverLoader. Change-Id: Iaf19ce92c7e153b5477340abb8e7650d8434ca86
Showing
6 changed files
with
29 additions
and
82 deletions
... | @@ -23,31 +23,37 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -23,31 +23,37 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
23 | import org.slf4j.Logger; | 23 | import org.slf4j.Logger; |
24 | import org.slf4j.LoggerFactory; | 24 | import org.slf4j.LoggerFactory; |
25 | 25 | ||
26 | -import java.io.InputStream; | ||
27 | - | ||
28 | /** | 26 | /** |
29 | - * Bootstrap for built in drivers. | 27 | + * Abstract boot-strapper for loading and registering driver definitions. |
30 | */ | 28 | */ |
31 | @Component | 29 | @Component |
32 | public abstract class AbstractDriverLoader { | 30 | public abstract class AbstractDriverLoader { |
33 | 31 | ||
34 | private final Logger log = LoggerFactory.getLogger(getClass()); | 32 | private final Logger log = LoggerFactory.getLogger(getClass()); |
35 | 33 | ||
36 | - //private static final String DRIVERS_XML = "/onos-drivers.xml"; | ||
37 | - | ||
38 | private DriverProvider provider; | 34 | private DriverProvider provider; |
35 | + private final String path; | ||
39 | 36 | ||
40 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 37 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
41 | protected DriverAdminService driverAdminService; | 38 | protected DriverAdminService driverAdminService; |
42 | 39 | ||
40 | + /** | ||
41 | + * Creates a new loader for resource with the specified path. | ||
42 | + * | ||
43 | + * @param path drivers definition XML resource path | ||
44 | + */ | ||
45 | + protected AbstractDriverLoader(String path) { | ||
46 | + this.path = path; | ||
47 | + } | ||
48 | + | ||
43 | @Activate | 49 | @Activate |
44 | protected void activate() { | 50 | protected void activate() { |
45 | try { | 51 | try { |
46 | - provider = new XmlDriverLoader(getClassLoaderInstance()) | 52 | + provider = new XmlDriverLoader(getClass().getClassLoader()) |
47 | - .loadDrivers(loadXmlDriversStream(), driverAdminService); | 53 | + .loadDrivers(getClass().getResourceAsStream(path), driverAdminService); |
48 | driverAdminService.registerProvider(provider); | 54 | driverAdminService.registerProvider(provider); |
49 | } catch (Exception e) { | 55 | } catch (Exception e) { |
50 | - log.error("Unable to load default drivers", e); | 56 | + log.error("Unable to load {} driver definitions", path, e); |
51 | } | 57 | } |
52 | log.info("Started"); | 58 | log.info("Started"); |
53 | } | 59 | } |
... | @@ -58,8 +64,4 @@ public abstract class AbstractDriverLoader { | ... | @@ -58,8 +64,4 @@ public abstract class AbstractDriverLoader { |
58 | log.info("Stopped"); | 64 | log.info("Stopped"); |
59 | } | 65 | } |
60 | 66 | ||
61 | - protected abstract InputStream loadXmlDriversStream(); | ||
62 | - | ||
63 | - protected abstract ClassLoader getClassLoaderInstance(); | ||
64 | - | ||
65 | } | 67 | } | ... | ... |
... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.ciena; | ... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.ciena; |
19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
20 | import org.onosproject.net.driver.AbstractDriverLoader; | 20 | import org.onosproject.net.driver.AbstractDriverLoader; |
21 | 21 | ||
22 | -import java.io.InputStream; | ||
23 | - | ||
24 | /** | 22 | /** |
25 | - * Loader for Ciena device drivers from specific xml. | 23 | + * Loader for Ciena device drivers. |
26 | */ | 24 | */ |
27 | @Component(immediate = true) | 25 | @Component(immediate = true) |
28 | public class CienaDriversLoader extends AbstractDriverLoader { | 26 | public class CienaDriversLoader extends AbstractDriverLoader { |
29 | - | 27 | + public CienaDriversLoader() { |
30 | - private static final String DRIVERS_XML = "/ciena-drivers.xml"; | 28 | + super("/ciena-drivers.xml"); |
31 | - | ||
32 | - @Override | ||
33 | - protected InputStream loadXmlDriversStream() { | ||
34 | - return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); | ||
35 | - } | ||
36 | - | ||
37 | - @Override | ||
38 | - protected ClassLoader getClassLoaderInstance() { | ||
39 | - return getClass().getClassLoader(); | ||
40 | } | 29 | } |
41 | } | 30 | } | ... | ... |
... | @@ -21,24 +21,13 @@ import org.apache.felix.scr.annotations.Service; | ... | @@ -21,24 +21,13 @@ import org.apache.felix.scr.annotations.Service; |
21 | import org.onosproject.net.driver.AbstractDriverLoader; | 21 | import org.onosproject.net.driver.AbstractDriverLoader; |
22 | import org.onosproject.net.driver.DefaultDriverProviderService; | 22 | import org.onosproject.net.driver.DefaultDriverProviderService; |
23 | 23 | ||
24 | -import java.io.InputStream; | ||
25 | - | ||
26 | /** | 24 | /** |
27 | - * Loader for default device drivers from specific xml. | 25 | + * Loader for default device drivers. |
28 | */ | 26 | */ |
29 | @Service | 27 | @Service |
30 | @Component(immediate = true) | 28 | @Component(immediate = true) |
31 | public class DefaultDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService { | 29 | public class DefaultDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService { |
32 | - | 30 | + public DefaultDriversLoader() { |
33 | - private static final String DRIVERS_XML = "/onos-drivers.xml"; | 31 | + super("/onos-drivers.xml"); |
34 | - | ||
35 | - @Override | ||
36 | - protected InputStream loadXmlDriversStream() { | ||
37 | - return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); | ||
38 | - } | ||
39 | - | ||
40 | - @Override | ||
41 | - protected ClassLoader getClassLoaderInstance() { | ||
42 | - return getClass().getClassLoader(); | ||
43 | } | 32 | } |
44 | } | 33 | } | ... | ... |
... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.fujitsu; | ... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.fujitsu; |
19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
20 | import org.onosproject.net.driver.AbstractDriverLoader; | 20 | import org.onosproject.net.driver.AbstractDriverLoader; |
21 | 21 | ||
22 | -import java.io.InputStream; | ||
23 | - | ||
24 | /** | 22 | /** |
25 | - * Loader for Fujitsu device drivers from specific xml. | 23 | + * Loader for Fujitsu device drivers. |
26 | */ | 24 | */ |
27 | @Component(immediate = true) | 25 | @Component(immediate = true) |
28 | public class FujitsuDriversLoader extends AbstractDriverLoader { | 26 | public class FujitsuDriversLoader extends AbstractDriverLoader { |
29 | - | 27 | + public FujitsuDriversLoader() { |
30 | - private static final String DRIVERS_XML = "/fujitsu-drivers.xml"; | 28 | + super("/fujitsu-drivers.xml"); |
31 | - | ||
32 | - @Override | ||
33 | - protected InputStream loadXmlDriversStream() { | ||
34 | - return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); | ||
35 | - } | ||
36 | - | ||
37 | - @Override | ||
38 | - protected ClassLoader getClassLoaderInstance() { | ||
39 | - return getClass().getClassLoader(); | ||
40 | } | 29 | } |
41 | } | 30 | } | ... | ... |
... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.netconf; | ... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.netconf; |
19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
20 | import org.onosproject.net.driver.AbstractDriverLoader; | 20 | import org.onosproject.net.driver.AbstractDriverLoader; |
21 | 21 | ||
22 | -import java.io.InputStream; | ||
23 | - | ||
24 | /** | 22 | /** |
25 | - * Loader for NETCONF device drivers from specific xml. | 23 | + * Loader for NETCONF device drivers. |
26 | */ | 24 | */ |
27 | @Component(immediate = true) | 25 | @Component(immediate = true) |
28 | public class NetconfDriversLoader extends AbstractDriverLoader { | 26 | public class NetconfDriversLoader extends AbstractDriverLoader { |
29 | - | 27 | + public NetconfDriversLoader() { |
30 | - private static final String DRIVERS_XML = "/netconf-drivers.xml"; | 28 | + super("/netconf-drivers.xml"); |
31 | - | ||
32 | - @Override | ||
33 | - protected InputStream loadXmlDriversStream() { | ||
34 | - return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); | ||
35 | - } | ||
36 | - | ||
37 | - @Override | ||
38 | - protected ClassLoader getClassLoaderInstance() { | ||
39 | - return getClass().getClassLoader(); | ||
40 | } | 29 | } |
41 | } | 30 | } | ... | ... |
... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.ovsdb; | ... | @@ -19,23 +19,12 @@ package org.onosproject.drivers.ovsdb; |
19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
20 | import org.onosproject.net.driver.AbstractDriverLoader; | 20 | import org.onosproject.net.driver.AbstractDriverLoader; |
21 | 21 | ||
22 | -import java.io.InputStream; | ||
23 | - | ||
24 | /** | 22 | /** |
25 | - * Loader for OVSDB device drivers from specific xml. | 23 | + * Loader for OVSDB device drivers. |
26 | */ | 24 | */ |
27 | @Component(immediate = true) | 25 | @Component(immediate = true) |
28 | public class OvsdbDriversLoader extends AbstractDriverLoader { | 26 | public class OvsdbDriversLoader extends AbstractDriverLoader { |
29 | - | 27 | + public OvsdbDriversLoader() { |
30 | - private static final String DRIVERS_XML = "/ovsdb-drivers.xml"; | 28 | + super("/ovsdb-drivers.xml"); |
31 | - | ||
32 | - @Override | ||
33 | - protected InputStream loadXmlDriversStream() { | ||
34 | - return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); | ||
35 | - } | ||
36 | - | ||
37 | - @Override | ||
38 | - protected ClassLoader getClassLoaderInstance() { | ||
39 | - return getClass().getClassLoader(); | ||
40 | } | 29 | } |
41 | } | 30 | } | ... | ... |
-
Please register or login to post a comment