Adding first fallback provider for flow rule subsystem.
Fixing onos-check-apps.
Change-Id: Ic8c2bac4403bb7a49813826262706e857932b6c0
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
index 73234d5..9b490c5 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
@@ -46,6 +46,15 @@
*/
protected abstract S createProviderService(P provider);
+ /**
+ * Returns the default fall-back provider. Default implementation return null.
+ *
+ * @return default provider
+ */
+ protected P defaultProvider() {
+ return null;
+ }
+
@Override
public synchronized S register(P provider) {
checkNotNull(provider, "Provider cannot be null");
@@ -89,13 +98,16 @@
}
/**
- * Returns the provider registered with the specified provider ID.
+ * Returns the provider registered with the specified provider ID or null
+ * if none is found for the given provider family and default fall-back is
+ * not supported.
*
* @param providerId provider identifier
* @return provider
*/
protected synchronized P getProvider(ProviderId providerId) {
- return providers.get(providerId);
+ P provider = providers.get(providerId);
+ return provider != null ? provider : defaultProvider();
}
/**
@@ -105,7 +117,8 @@
* @return provider bound to the URI scheme
*/
protected synchronized P getProvider(DeviceId deviceId) {
- return providersByScheme.get(deviceId.uri().getScheme());
+ P provider = providersByScheme.get(deviceId.uri().getScheme());
+ return provider != null ? provider : defaultProvider();
}
/**