import org.opendaylight.netconf.sal.rest.api.RestConnector;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
/**
* Provider for restconf draft11.
@Override
public void onSessionInitiated(final ProviderSession session) {
final SchemaService schemaService = Preconditions.checkNotNull(session.getService(SchemaService.class));
+ final RestconfApplication restApp = getObjectFromBundleContext(RestconfApplication.class,
+ RestconfApplicationService.class.getName());
+ Preconditions.checkNotNull(restApp, "RestconfApplication service doesn't exist.");
+ this.listenerRegistration = schemaService.registerSchemaContextListener(restApp.getSchemaContextHandler());
+ }
+
+ private <T> T getObjectFromBundleContext(final Class<T> type, final String serviceRefName) {
+ final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
+ final ServiceReference<?> serviceReference = bundleContext.getServiceReference(serviceRefName);
+ return (T) bundleContext.getService(serviceReference);
}
@Override