X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2FAbstractBrokerAwareActivator.java;h=9972ce7b8a1fba90bf4c5a95691d1d019be8be09;hb=a81d98f692b80c45bce3fe6a87e731abfb012a9f;hp=6047f058b7ab667c6383b3b6431844f12b125de1;hpb=1ee71ae58a03de1c1f8fd8c789e7921508ba9f59;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/AbstractBrokerAwareActivator.java b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/AbstractBrokerAwareActivator.java index 6047f058b7..9972ce7b8a 100644 --- a/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/AbstractBrokerAwareActivator.java +++ b/opendaylight/md-sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/AbstractBrokerAwareActivator.java @@ -31,7 +31,7 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { @Override public void run() { - onBrokerAvailable(broker, context);; + onBrokerAvailable(broker, context); } }); return broker; @@ -39,14 +39,20 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { @Override public void modifiedService(ServiceReference reference, BindingAwareBroker service) { - // TODO Auto-generated method stub - + removedService(reference, service); + addingService(reference); } @Override public void removedService(ServiceReference reference, BindingAwareBroker service) { - // TODO Auto-generated method stub + broker = context.getService(reference); + mdActivationPool.execute(new Runnable() { + @Override + public void run() { + onBrokerRemoved(broker, context); + } + }); } }; @@ -72,7 +78,7 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { /** * Called when this bundle is started (before - * {@link #onSessionInitiated(ProviderContext)} so the Framework can perform + * {@link BindingAwareProvider#onSessionInitiated(ProviderContext)} so the Framework can perform * the bundle-specific activities necessary to start this bundle. This * method can be used to register services or to allocate any resources that * this bundle needs. @@ -82,7 +88,7 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { * * @param context * The execution context of the bundle being started. - * @throws Exception + * @throws RuntimeException * If this method throws an exception, this bundle is marked as * stopped and the Framework will remove this bundle's * listeners, unregister all services registered by this bundle, @@ -104,7 +110,7 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { * This method must complete and return to its caller in a timely manner. * * @param context The execution context of the bundle being stopped. - * @throws Exception If this method throws an exception, the bundle is still + * @throws RuntimeException If this method throws an exception, the bundle is still * marked as stopped, and the Framework will remove the bundle's * listeners, unregister all services registered by the bundle, and * release all services used by the bundle. @@ -117,6 +123,6 @@ public abstract class AbstractBrokerAwareActivator implements BundleActivator { protected abstract void onBrokerAvailable(BindingAwareBroker broker, BundleContext context); protected void onBrokerRemoved(BindingAwareBroker broker, BundleContext context) { - + stopImpl(context); } }