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;fp=opendaylight%2Fmd-sal%2Fforwardingrules-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Ffrm%2FFRMActivator.java;h=929c489eaf36fa200c88a7bec70834a0fa9f2c1b;hb=e4ead0f229dd4f21a054b7139ddb8c69c686ace1;hp=0000000000000000000000000000000000000000;hpb=386d8f0ac5fa09ee5514d48284f1a4012f408b52;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 new file mode 100644 index 0000000000..929c489eaf --- /dev/null +++ b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/FRMActivator.java @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +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.sal.binding.api.AbstractBindingAwareProvider; +import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; +import org.osgi.framework.BundleContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FRMActivator extends AbstractBindingAwareProvider { + + private final static Logger LOG = LoggerFactory.getLogger(FRMActivator.class); + + private static FlowProvider flowProvider = new FlowProvider(); + private static GroupProvider groupProvider = new GroupProvider(); + private static MeterProvider meterProvider = new MeterProvider(); + + @Override + public void onSessionInitiated(final ProviderContext session) { + DataProviderService flowSalService = session.getSALService(DataProviderService.class); + FRMActivator.flowProvider.setDataService(flowSalService); + SalFlowService rpcFlowSalService = session.getRpcService(SalFlowService.class); + FRMActivator.flowProvider.setSalFlowService(rpcFlowSalService); + FRMActivator.flowProvider.start(); + DataProviderService groupSalService = session.getSALService(DataProviderService.class); + FRMActivator.groupProvider.setDataService(groupSalService); + SalGroupService rpcGroupSalService = session.getRpcService(SalGroupService.class); + FRMActivator.groupProvider.setSalGroupService(rpcGroupSalService); + FRMActivator.groupProvider.start(); + DataProviderService meterSalService = session.getSALService(DataProviderService.class); + FRMActivator.meterProvider.setDataService(meterSalService); + SalMeterService rpcMeterSalService = session.getRpcService(SalMeterService.class); + FRMActivator.meterProvider.setSalMeterService(rpcMeterSalService); + FRMActivator.meterProvider.start(); + } + + @Override + protected void stopImpl(final BundleContext context) { + try { + FRMActivator.flowProvider.close(); + FRMActivator.groupProvider.close(); + FRMActivator.meterProvider.close(); + } catch (Throwable e) { + LOG.error("Unexpected error by stopping FRMActivator", e); + throw new RuntimeException(e); + } + } + } \ No newline at end of file