X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2FRestconfProviderImpl.java;h=44acf9e83a822c3cb6bf0c5b1a508ef0d38829b0;hb=ddaf5bf1e47671e5e9ddf65e9456b7c582fb381e;hp=c7c9cc0dc5bd1d34612a6e31dccc26cc72548249;hpb=b7662456be862b9cb81996ac553c0945b7c08dd0;p=controller.git diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfProviderImpl.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfProviderImpl.java index c7c9cc0dc5..44acf9e83a 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfProviderImpl.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/RestconfProviderImpl.java @@ -19,6 +19,7 @@ import org.opendaylight.controller.config.yang.md.sal.rest.connector.RestConnect import org.opendaylight.controller.config.yang.md.sal.rest.connector.Rpcs; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; +import org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter; import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; import org.opendaylight.controller.sal.core.api.Provider; import org.opendaylight.controller.sal.core.api.model.SchemaService; @@ -30,26 +31,31 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; public class RestconfProviderImpl implements Provider, AutoCloseable, RestConnector, RestConnectorRuntimeMXBean { - public final static String NOT_INITALIZED_MSG = "Restconf is not initialized yet. Please try again later"; - private final StatisticsRestconfServiceWrapper stats = StatisticsRestconfServiceWrapper.getInstance(); private ListenerRegistration listenerRegistration; + private ListenerRegistration rpcRouterSchemalistenerRegistration; private PortNumber port; - public void setWebsocketPort(PortNumber port) { + private Thread webSocketServerThread; + + public void setWebsocketPort(final PortNumber port) { this.port = port; } - private Thread webSocketServerThread; - @Override - public void onSessionInitiated(ProviderSession session) { + public void onSessionInitiated(final ProviderSession session) { final DOMDataBroker domDataBroker = session.getService(DOMDataBroker.class); BrokerFacade.getInstance().setContext(session); BrokerFacade.getInstance().setDomDataBroker( domDataBroker); - SchemaService schemaService = session.getService(SchemaService.class); + final DOMRpcRouter rpcRouter = new DOMRpcRouter(); + + final SchemaService schemaService = session.getService(SchemaService.class); listenerRegistration = schemaService.registerSchemaContextListener(ControllerContext.getInstance()); + rpcRouterSchemalistenerRegistration = schemaService.registerSchemaContextListener(rpcRouter); + BrokerFacade.getInstance().setRpcService(rpcRouter); + + ControllerContext.getInstance().setSchemas(schemaService.getGlobalContext()); ControllerContext.getInstance().setMountService(session.getService(DOMMountPointService.class)); @@ -65,22 +71,29 @@ public class RestconfProviderImpl implements Provider, AutoCloseable, RestConnec @Override public void close() { + + if (rpcRouterSchemalistenerRegistration != null) { + rpcRouterSchemalistenerRegistration.close(); + } + if (listenerRegistration != null) { listenerRegistration.close(); } + + WebSocketServer.destroyInstance(); webSocketServerThread.interrupt(); } @Override public Config getConfig() { - Config config = new Config(); - Get get = new Get(); + final Config config = new Config(); + final Get get = new Get(); get.setReceivedRequests(stats.getConfigGet()); config.setGet(get); - Post post = new Post(); + final Post post = new Post(); post.setReceivedRequests(stats.getConfigPost()); config.setPost(post); - Put put = new Put(); + final Put put = new Put(); put.setReceivedRequests(stats.getConfigPut()); config.setPut(put); return config; @@ -88,9 +101,9 @@ public class RestconfProviderImpl implements Provider, AutoCloseable, RestConnec @Override public Operational getOperational() { - BigInteger opGet = stats.getOperationalGet(); - Operational operational = new Operational(); - Get get = new Get(); + final BigInteger opGet = stats.getOperationalGet(); + final Operational operational = new Operational(); + final Get get = new Get(); get.setReceivedRequests(opGet); operational.setGet(get); return operational; @@ -98,8 +111,8 @@ public class RestconfProviderImpl implements Provider, AutoCloseable, RestConnec @Override public Rpcs getRpcs() { - BigInteger rpcInvoke = stats.getRpc(); - Rpcs rpcs = new Rpcs(); + final BigInteger rpcInvoke = stats.getRpc(); + final Rpcs rpcs = new Rpcs(); rpcs.setReceivedRequests(rpcInvoke); return rpcs ; }