X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fforwardingrules-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Ffrm%2FFRMActivator.java;h=9878d16e57bca8450f6217455d58fa3ef2e0a33f;hb=a23ab6d60b7b57184a8fe59e282e46b448c86d6a;hp=c75c644c008dfe0aad4849a98a13a80f053a6e80;hpb=3dd9d7c6da1baaf72f05e1118c0ca47dc16e3c7b;p=controller.git diff --git a/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/FRMActivator.java b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/FRMActivator.java index c75c644c00..9878d16e57 100644 --- a/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/FRMActivator.java +++ b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/FRMActivator.java @@ -7,10 +7,7 @@ */ package org.opendaylight.controller.frm; -import org.opendaylight.controller.frm.flow.FlowProvider; -import org.opendaylight.controller.frm.group.GroupProvider; -import org.opendaylight.controller.frm.meter.MeterProvider; -import org.opendaylight.controller.frm.reconil.FlowNodeReconcilProvider; +import org.opendaylight.controller.frm.impl.ForwardingRulesManagerImpl; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; @@ -21,8 +18,7 @@ import org.slf4j.LoggerFactory; /** * Forwarding Rules Manager Activator * - * Activator manages all Providers ({@link FlowProvider}, {@link GroupProvider}, - * {@link MeterProvider} and the {@link FlowNodeReconcilProvider}). + * Activator {@link ForwardingRulesManager}. * It registers all listeners (DataChangeEvent, ReconcilNotification) * in the Session Initialization phase. * @@ -33,56 +29,33 @@ public class FRMActivator extends AbstractBindingAwareProvider { private final static Logger LOG = LoggerFactory.getLogger(FRMActivator.class); - private final FlowProvider flowProvider; - private final GroupProvider groupProvider; - private final MeterProvider meterProvider; - private final FlowNodeReconcilProvider flowNodeReconcilProvider; - - public FRMActivator() { - this.flowProvider = new FlowProvider(); - this.groupProvider = new GroupProvider(); - this.meterProvider = new MeterProvider(); - this.flowNodeReconcilProvider = new FlowNodeReconcilProvider(); - } + private ForwardingRulesManager manager; @Override - public void onSessionInitiated(final ProviderContext session) { + public void onSessionInitiated(ProviderContext session) { LOG.info("FRMActivator initialization."); - /* Flow */ try { - final DataBroker flowSalService = session.getSALService(DataBroker.class); - this.flowProvider.init(flowSalService); - this.flowProvider.start(session); - /* Group */ - final DataBroker groupSalService = session.getSALService(DataBroker.class); - this.groupProvider.init(groupSalService); - this.groupProvider.start(session); - /* Meter */ - final DataBroker meterSalService = session.getSALService(DataBroker.class); - this.meterProvider.init(meterSalService); - this.meterProvider.start(session); - /* FlowNode Reconciliation */ - final DataBroker dbs = session.getSALService(DataBroker.class); - this.flowNodeReconcilProvider.init(dbs); - this.flowNodeReconcilProvider.start(session); - - LOG.info("FRMActivator started successfully"); - } catch (Exception e) { - String errMsg = "Unexpected error by starting FRMActivator"; - LOG.error(errMsg, e); - throw new IllegalStateException(errMsg, e); + final DataBroker dataBroker = session.getSALService(DataBroker.class); + this.manager = new ForwardingRulesManagerImpl(dataBroker, session); + this.manager.start(); + LOG.info("FRMActivator initialization successfull."); + } + catch (Exception e) { + LOG.error("Unexpected error by FRM initialization!", e); + this.stopImpl(null); } } @Override protected void stopImpl(final BundleContext context) { - try { - this.flowProvider.close(); - this.groupProvider.close(); - this.meterProvider.close(); - this.flowNodeReconcilProvider.close(); - } catch (Exception e) { - LOG.error("Unexpected error by stopping FRMActivator", e); + if (manager != null) { + try { + manager.close(); + } catch (Exception e) { + LOG.error("Unexpected error by stopping FRMActivator", e); + } + manager = null; + LOG.info("FRMActivator stopped."); } } } \ No newline at end of file