Refining driver subsystem to facilitate coordinated start-up.
- for ONOS-6402
Change-Id: I7f64fc62ad1d451fcf55624b2422b60631a3c8e8
diff --git a/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java b/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
index 88a7e7a..b3df232 100644
--- a/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
@@ -42,7 +42,9 @@
import org.onosproject.net.device.DeviceServiceAdapter;
import org.onosproject.net.driver.AbstractHandlerBehaviour;
import org.onosproject.net.driver.DefaultDriver;
+import org.onosproject.net.driver.DriverRegistry;
import org.onosproject.net.driver.impl.DriverManager;
+import org.onosproject.net.driver.impl.DriverRegistryManager;
import org.onosproject.net.flow.CompletedBatchOperation;
import org.onosproject.net.flow.DefaultFlowEntry;
import org.onosproject.net.flow.DefaultFlowRule;
@@ -118,7 +120,6 @@
private TestDriverManager driverService;
-
@Before
public void setUp() {
mgr = new FlowRuleManager();
@@ -133,19 +134,20 @@
service = mgr;
registry = mgr;
- driverService = new TestDriverManager();
- driverService.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
- ImmutableMap.of(FlowRuleProgrammable.class,
- TestFlowRuleProgrammable.class),
- ImmutableMap.of()));
+ DriverRegistryManager driverRegistry = new DriverRegistryManager();
+ driverService = new TestDriverManager(driverRegistry);
+ driverRegistry.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
+ ImmutableMap.of(FlowRuleProgrammable.class,
+ TestFlowRuleProgrammable.class),
+ ImmutableMap.of()));
mgr.activate(null);
mgr.addListener(listener);
provider = new TestProvider(PID);
- providerService = registry.register(provider);
+ providerService = this.registry.register(provider);
appId = new TestApplicationId(0, "FlowRuleManagerTest");
assertTrue("provider should be registered",
- registry.getProviders().contains(provider.id()));
+ this.registry.getProviders().contains(provider.id()));
}
@After
@@ -270,7 +272,7 @@
FlowEntry fe3 = new DefaultFlowEntry(f3);
providerService.pushFlowMetrics(DID, ImmutableList.of(fe1, fe2, fe3));
validateEvents(RULE_ADD_REQUESTED, RULE_ADD_REQUESTED, RULE_ADD_REQUESTED,
- RULE_ADDED, RULE_ADDED, RULE_ADDED);
+ RULE_ADDED, RULE_ADDED, RULE_ADDED);
mgr.purgeFlowRules(DID);
assertEquals("0 rule should exist", 0, flowCount());
}
@@ -697,7 +699,8 @@
}
private class TestDriverManager extends DriverManager {
- TestDriverManager() {
+ TestDriverManager(DriverRegistry registry) {
+ this.registry = registry;
this.deviceService = mgr.deviceService;
activate();
}
diff --git a/core/net/src/test/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManagerTest.java b/core/net/src/test/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManagerTest.java
index f4a12a9..5e03b7e 100644
--- a/core/net/src/test/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/flowobjective/impl/FlowObjectiveManagerTest.java
@@ -15,9 +15,6 @@
*/
package org.onosproject.net.flowobjective.impl;
-import java.util.ArrayList;
-import java.util.List;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -36,11 +33,9 @@
import org.onosproject.net.device.DeviceEvent;
import org.onosproject.net.device.DeviceListener;
import org.onosproject.net.device.DeviceServiceAdapter;
-import org.onosproject.net.driver.AbstractDriverLoader;
import org.onosproject.net.driver.Behaviour;
import org.onosproject.net.driver.DefaultDriverData;
import org.onosproject.net.driver.DefaultDriverHandler;
-import org.onosproject.net.driver.DefaultDriverProviderService;
import org.onosproject.net.driver.Driver;
import org.onosproject.net.driver.DriverAdapter;
import org.onosproject.net.driver.DriverData;
@@ -61,6 +56,9 @@
import org.onosproject.net.flowobjective.ObjectiveEvent;
import org.onosproject.net.intent.TestTools;
+import java.util.ArrayList;
+import java.util.List;
+
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasSize;
@@ -125,12 +123,6 @@
}
- private class TestDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService {
- public TestDriversLoader() {
- super("/onos-drivers.xml");
- }
- }
-
private class TestDriver extends DriverAdapter {
@Override
@@ -192,7 +184,6 @@
manager = new FlowObjectiveManager();
manager.flowObjectiveStore = new TestFlowObjectiveStore();
manager.deviceService = new TestDeviceService();
- manager.defaultDriverService = new TestDriversLoader();
manager.driverService = new TestDriverService();
manager.cfgService = new TestComponentConfigService();
diff --git a/core/net/src/test/java/org/onosproject/net/group/impl/GroupManagerTest.java b/core/net/src/test/java/org/onosproject/net/group/impl/GroupManagerTest.java
index a85046b..42b4863 100644
--- a/core/net/src/test/java/org/onosproject/net/group/impl/GroupManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/group/impl/GroupManagerTest.java
@@ -37,7 +37,9 @@
import org.onosproject.net.device.DeviceServiceAdapter;
import org.onosproject.net.driver.AbstractHandlerBehaviour;
import org.onosproject.net.driver.DefaultDriver;
+import org.onosproject.net.driver.DriverRegistry;
import org.onosproject.net.driver.impl.DriverManager;
+import org.onosproject.net.driver.impl.DriverRegistryManager;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.group.DefaultGroup;
@@ -112,11 +114,12 @@
mgr.activate(null);
mgr.addListener(listener);
- driverService = new TestDriverManager();
- driverService.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
- ImmutableMap.of(GroupProgrammable.class,
- TestGroupProgrammable.class),
- ImmutableMap.of()));
+ DriverRegistryManager driverRegistry = new DriverRegistryManager();
+ driverService = new TestDriverManager(driverRegistry);
+ driverRegistry.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
+ ImmutableMap.of(GroupProgrammable.class,
+ TestGroupProgrammable.class),
+ ImmutableMap.of()));
internalProvider = new TestGroupProvider(PID);
provider = internalProvider;
@@ -747,7 +750,8 @@
}
private class TestDriverManager extends DriverManager {
- TestDriverManager() {
+ TestDriverManager(DriverRegistry registry) {
+ this.registry = registry;
this.deviceService = mgr.deviceService;
activate();
}
@@ -773,7 +777,7 @@
assertEquals(lastDeviceIdProgrammable, expectedDeviceId);
assertTrue(groupOperations.containsAll(expectedGroupOps) &&
- expectedGroupOps.containsAll(groupOperations));
+ expectedGroupOps.containsAll(groupOperations));
groupOperations.clear();
lastDeviceIdProgrammable = null;
diff --git a/core/net/src/test/java/org/onosproject/net/packet/impl/PacketManagerTest.java b/core/net/src/test/java/org/onosproject/net/packet/impl/PacketManagerTest.java
index 5e0a432..095d797 100644
--- a/core/net/src/test/java/org/onosproject/net/packet/impl/PacketManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/packet/impl/PacketManagerTest.java
@@ -33,7 +33,9 @@
import org.onosproject.net.device.DeviceServiceAdapter;
import org.onosproject.net.driver.AbstractHandlerBehaviour;
import org.onosproject.net.driver.DefaultDriver;
+import org.onosproject.net.driver.DriverRegistry;
import org.onosproject.net.driver.impl.DriverManager;
+import org.onosproject.net.driver.impl.DriverRegistryManager;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.packet.DefaultOutboundPacket;
import org.onosproject.net.packet.OutboundPacket;
@@ -84,11 +86,13 @@
mgr.coreService = new TestCoreService();
providerRegistry = mgr;
mgr.activate();
- driverService = new TestDriverManager();
- driverService.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
- ImmutableMap.of(PacketProgrammable.class,
- TestPacketProgrammable.class),
- ImmutableMap.of()));
+
+ DriverRegistryManager driverRegistry = new DriverRegistryManager();
+ driverService = new TestDriverManager(driverRegistry);
+ driverRegistry.addDriver(new DefaultDriver("foo", ImmutableList.of(), "", "", "",
+ ImmutableMap.of(PacketProgrammable.class,
+ TestPacketProgrammable.class),
+ ImmutableMap.of()));
}
/**
@@ -140,7 +144,8 @@
}
private class TestDriverManager extends DriverManager {
- TestDriverManager() {
+ TestDriverManager(DriverRegistry registry) {
+ this.registry = registry;
this.deviceService = mgr.deviceService;
activate();
}