[ONOS-5090] YANG notification handler implementation
Change-Id: I8e161757b9f39e7beb2c54ebac8dae9ee6b4907f
~
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
index 370e9cc..ce123e1 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
@@ -16,7 +16,6 @@
package org.onosproject.yms.app.ysr;
-import org.onosproject.event.ListenerService;
import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
import org.onosproject.yangutils.datamodel.YangInclude;
import org.onosproject.yangutils.datamodel.YangModule;
@@ -24,7 +23,6 @@
import org.onosproject.yangutils.datamodel.YangSchemaNode;
import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
-import org.onosproject.yms.app.ynh.YangNotificationExtendedService;
import org.onosproject.yms.ysr.YangModuleIdentifier;
import org.onosproject.yms.ysr.YangModuleInformation;
import org.onosproject.yms.ysr.YangModuleLibrary;
@@ -79,72 +77,21 @@
private static final String DATE_FORMAT = "yyyy-mm-dd";
private static final Logger log =
LoggerFactory.getLogger(DefaultYangSchemaRegistry.class);
-
- /*
- * Map for storing app objects.
- */
private final ConcurrentMap<String, YsrAppContext> appObjectStore;
-
- /*
- * Map for storing YANG schema nodes.
- */
private final ConcurrentMap<String, YsrAppContext> yangSchemaStore;
-
- /*
- * Map for storing YANG schema nodes with respect to root's generated
- * interface file name.
- */
private final ConcurrentMap<String, YsrAppContext>
yangSchemaStoreForRootInterface;
-
- /*
- * Map for storing YANG schema nodes root's generated op param file name.
- */
private final ConcurrentMap<String, YsrAppContext>
yangSchemaStoreForRootOpParam;
-
- /*
- * Map for storing YANG schema nodes with respect to notifications.
- */
private final ConcurrentMap<String, YsrAppContext>
yangRootSchemaStoreForNotification;
-
- /*
- * Map for storing registered classes.
- */
private final ConcurrentMap<String, Class<?>> registerClassStore;
-
- /*
- * Map for storing YANG file details.
- */
private final ConcurrentMap<YangModuleIdentifier, String> yangFileStore;
-
- /*
- * Context of application which is registering with YMS.
- */
- private YsrAppContext ysrAppContext;
-
- /*
- * Context of application which is registering with YMS with multiple
- * revision.
- */
- private YsrAppContext ysrContextForSchemaStore;
-
- /*
- * Context of application which is registering with YMS with multiple
- * manager object.
- */
- private YsrAppContext ysrContextForAppStore;
-
- /*
- * Class loader of service application.
- */
- private ClassLoader classLoader;
-
- /**
- * YANG module library.
- */
private final YangModuleLibrary library;
+ private YsrAppContext ysrAppContext;
+ private YsrAppContext ysrContextForSchemaStore;
+ private YsrAppContext ysrContextForAppStore;
+ private ClassLoader classLoader;
/**
* Creates an instance of default YANG schema registry.
@@ -164,20 +111,14 @@
@Override
- public void registerApplication(Object appObject, Class<?> serviceClass,
- YangNotificationExtendedService
- notificationExtendedService) {
+ public void registerApplication(Object appObject, Class<?> serviceClass) {
BundleContext bundleContext = getBundle(serviceClass)
.getBundleContext();
String jarPath = getJarPathFromBundleLocation(
bundleContext.getBundle().getLocation(),
bundleContext.getProperty(USER_DIRECTORY));
- // process application registration.
processRegistration(serviceClass, appObject, jarPath);
- //process notification registration.
- processNotificationRegistration(serviceClass, appObject,
- notificationExtendedService);
}
/**
@@ -588,7 +529,6 @@
}
log.info("successfully registered this application {}{}", appName,
SERVICE);
-
}
/**
@@ -773,7 +713,7 @@
* @return true if the manager object is already registered with
* notification handler
*/
- boolean verifyNotificationObject(Class<?> serviceClass) {
+ public boolean verifyNotificationObject(Class<?> serviceClass) {
YangSchemaNode schemaNode = null;
String serviceName = serviceClass.getName();
if (appObjectStore.containsKey(serviceName)) {
@@ -1016,25 +956,6 @@
}
/**
- * Process notification registration for manager class object.
- *
- * @param yangService yang service
- * @param yangManager yang manager
- * @param ynhService notification extended service
- */
- private void processNotificationRegistration(
- Class<?> yangService, Object yangManager,
- YangNotificationExtendedService ynhService) {
-
- if (yangManager != null && yangManager instanceof ListenerService) {
- if (verifyNotificationObject(yangService)) {
- ynhService.registerAsListener(
- (ListenerService) yangManager);
- }
- }
- }
-
- /**
* Clears database for YSR.
*/
public void flushYsrData() {
@@ -1112,5 +1033,4 @@
public YangModuleLibrary getLibrary() {
return library;
}
-
}
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
index 1812f04..8098188 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
@@ -17,7 +17,6 @@
package org.onosproject.yms.app.ysr;
import org.onosproject.yangutils.datamodel.YangSchemaNode;
-import org.onosproject.yms.app.ynh.YangNotificationExtendedService;
/**
* Abstraction of entity which provides interfaces to YANG schema registry.
@@ -27,15 +26,10 @@
/**
* Registers applications to YMS.
*
- * @param managerObject application's object
- * @param serviceClass service class which needs to be
- * registered
- * @param notificationExtendedService notification extended service to
- * register application object with YNH
+ * @param managerObject application's object
+ * @param serviceClass service class to be registered
*/
- void registerApplication(Object managerObject, Class<?> serviceClass,
- YangNotificationExtendedService
- notificationExtendedService);
+ void registerApplication(Object managerObject, Class<?> serviceClass);
/**
* Unregisters applications to YMS.