Merge "creating a default subnet"
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / rest / impl / RestconfProvider.java
1 package org.opendaylight.controller.sal.rest.impl;
2
3 import org.opendaylight.controller.sal.core.api.AbstractProvider;
4 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
5 import org.opendaylight.controller.sal.core.api.data.DataBrokerService;
6 import org.opendaylight.controller.sal.core.api.data.DataProviderService;
7 import org.opendaylight.controller.sal.core.api.model.SchemaService;
8 import org.opendaylight.controller.sal.core.api.model.SchemaServiceListener;
9 import org.opendaylight.controller.sal.restconf.impl.BrokerFacade;
10 import org.opendaylight.controller.sal.restconf.impl.ControllerContext;
11 import org.opendaylight.yangtools.concepts.ListenerRegistration;
12 import org.osgi.framework.BundleContext;
13
14 public class RestconfProvider extends AbstractProvider {
15
16     private ListenerRegistration<SchemaServiceListener> listenerRegistration;
17
18     @Override
19     public void onSessionInitiated(ProviderSession session) {
20         DataBrokerService dataService = session.getService(DataBrokerService.class);
21
22         BrokerFacade.getInstance().setContext(session);
23         BrokerFacade.getInstance().setDataService(dataService);
24
25         SchemaService schemaService = session.getService(SchemaService.class);
26         listenerRegistration = schemaService.registerSchemaServiceListener(ControllerContext.getInstance());
27         ControllerContext.getInstance().setSchemas(schemaService.getGlobalContext());
28     }
29
30     @Override
31     protected void stopImpl(BundleContext context) {
32         super.stopImpl(context);
33         if (listenerRegistration != null) {
34             try {
35                 listenerRegistration.close();
36             } catch (Exception e) {
37                 e.printStackTrace();
38             }
39         }
40     }
41 }