2 * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.netvirt.aclservice.recovery;
10 import java.util.Queue;
11 import javax.inject.Inject;
12 import javax.inject.Singleton;
13 import org.opendaylight.netvirt.aclservice.utils.AclServiceUtils;
14 import org.opendaylight.serviceutils.srm.RecoverableListener;
15 import org.opendaylight.serviceutils.srm.ServiceRecoveryInterface;
16 import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
21 public class AclServiceRecoveryHandler implements ServiceRecoveryInterface {
23 private static final Logger LOG = LoggerFactory.getLogger(AclServiceRecoveryHandler.class);
24 private final ServiceRecoveryRegistry serviceRecoveryRegistry;
27 public AclServiceRecoveryHandler(final ServiceRecoveryRegistry serviceRecoveryRegistry) {
28 LOG.info("Registering IFM service recovery handlers");
29 this.serviceRecoveryRegistry = serviceRecoveryRegistry;
30 serviceRecoveryRegistry.registerServiceRecoveryRegistry(AclServiceUtils.getRecoverServiceRegistryKey(), this);
33 private void deregisterListeners() {
34 Queue<RecoverableListener> recoverableListeners =
35 serviceRecoveryRegistry.getRecoverableListeners(AclServiceUtils.getRecoverServiceRegistryKey());
36 recoverableListeners.forEach((RecoverableListener::deregisterListener));
39 private void registerListeners() {
40 Queue<RecoverableListener> recoverableListeners =
41 serviceRecoveryRegistry.getRecoverableListeners(AclServiceUtils.getRecoverServiceRegistryKey());
42 recoverableListeners.forEach((RecoverableListener::registerListener));
46 public void recoverService(final String entityId) {
47 LOG.info("Recover IFM service by deregistering and registering all relevant listeners");
48 deregisterListeners();