Fix occasional NPEs in Connection manager
[controller.git] / opendaylight / md-sal / samples / toaster-provider / src / main / java / org / opendaylight / controller / sample / toaster / provider / ToasterProvider.java
1 package org.opendaylight.controller.sample.toaster.provider;
2 import java.util.Collection;
3 import java.util.Collections;
4
5
6 import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider;
7 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
8 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
9 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
10 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
11 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
12 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterService;
13 import org.opendaylight.yangtools.yang.binding.RpcService;
14 import org.osgi.framework.BundleActivator;
15 import org.osgi.framework.BundleContext;
16 import org.osgi.framework.ServiceReference;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19
20
21 public class ToasterProvider extends AbstractBindingAwareProvider {
22     private static final Logger log = LoggerFactory.getLogger(ToasterProvider.class);
23
24         private ConsumerContext consumerContext;
25         private ProviderContext providerContext;
26         private OpendaylightToaster toaster;
27         
28         
29         public ToasterProvider() {
30                 toaster = new OpendaylightToaster();
31         }
32         
33         @Override
34         public void onSessionInitialized(ConsumerContext session) {
35                 log.info("Consumer Session initialized");
36                 this.consumerContext = session;
37
38         }
39
40         @Override
41         public void onSessionInitiated(ProviderContext session) {
42                 log.info("Provider Session initialized");
43                 
44                 this.providerContext = session;
45                 toaster.setNotificationProvider(session.getSALService(NotificationProviderService.class));
46                 providerContext.addRpcImplementation(ToasterService.class, toaster);
47         }       
48         
49         
50         @Override
51         public Collection<? extends RpcService> getImplementations() {
52                 return Collections.emptySet();
53         }
54
55         @Override
56         public Collection<? extends ProviderFunctionality> getFunctionality() {
57                 return Collections.emptySet();
58         }
59         
60         @Override
61         @Deprecated
62         protected void startImpl(BundleContext context) {
63             // TODO Auto-generated method stub
64             
65         }
66 }