import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
import org.opendaylight.mdsal.dom.api.DOMRpcResult;
import org.opendaylight.mdsal.dom.api.DOMRpcService;
+import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.mdsal.dom.spi.AbstractDOMRpcImplementationRegistration;
import org.opendaylight.yangtools.concepts.AbstractListenerRegistration;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
private volatile DOMRpcRoutingTable routingTable = DOMRpcRoutingTable.EMPTY;
+ private ListenerRegistration<?> listenerRegistration;
+
+ public static DOMRpcRouter newInstance(final DOMSchemaService schemaService) {
+ final DOMRpcRouter rpcRouter = new DOMRpcRouter();
+ rpcRouter.listenerRegistration = schemaService.registerSchemaContextListener(rpcRouter);
+ return rpcRouter;
+ }
+
@Override
public <T extends DOMRpcImplementation> DOMRpcImplementationRegistration<T> registerRpcImplementation(
final T implementation, final DOMRpcIdentifier... rpcs) {
@Override
public void close() {
listenerNotifier.shutdown();
+
+ if (listenerRegistration != null) {
+ listenerRegistration.close();
+ }
}
@VisibleForTesting