[ONOS-3203] Fault Management fixes.
1) Fix "org.onlab.osgi.ServiceNotFoundException: Service org.onosproject.incubator.net.faultmanagement.alarm.AlarmService not found" runtime error by making SnmpAlarmProviderService a (annotated) Service. Possibly later can register it via the ProviderRegistry without the Service anotation.
2) When SnmpAlarmProviderService is deactivated de-register our InternalDeviceListener to avoid leak.
3) In providers/snmp/alarm/pom.xml : Remove unnecessary dependency versions info. Remove unnecessary shading.
Change-Id: I93c0c15215b6cf230bcb03d8ea9c08a88bd03e3b
diff --git a/providers/snmp/alarm/src/main/java/org/onosproject/provider/snmp/alarm/impl/SnmpAlarmProviderService.java b/providers/snmp/alarm/src/main/java/org/onosproject/provider/snmp/alarm/impl/SnmpAlarmProviderService.java
index 4d2c658..65bd8c2 100644
--- a/providers/snmp/alarm/src/main/java/org/onosproject/provider/snmp/alarm/impl/SnmpAlarmProviderService.java
+++ b/providers/snmp/alarm/src/main/java/org/onosproject/provider/snmp/alarm/impl/SnmpAlarmProviderService.java
@@ -50,6 +50,7 @@
import org.slf4j.Logger;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.Service;
import static org.onlab.util.Tools.groupedThreads;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
@@ -64,10 +65,13 @@
* SNMP alarms provider.
*/
@Component(immediate = true)
+@Service
public class SnmpAlarmProviderService extends AbstractProvider implements AlarmProvider {
private final Logger log = getLogger(getClass());
+ private final InternalDeviceListener internalDeviceListener = new InternalDeviceListener();
+
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected CoreService coreService;
@@ -88,6 +92,7 @@
public SnmpAlarmProviderService() {
super(new ProviderId("snmp", "org.onosproject.provider.alarm"));
+ log.info("SnmpAlarmProviderService ...");
sessionFactory = new SnmpSessionFactory(
new DefaultSnmpConfigurationFactory(new V2cSnmpConfiguration()));
providers.put("1.3.6.1.4.1.18070.2.2", new Bti7000SnmpAlarmProvider());
@@ -99,7 +104,7 @@
appId = coreService.registerApplication("org.onosproject.snmp");
eventHandlingExecutor = Executors.newSingleThreadExecutor(
groupedThreads("onos/alarms", "event-handler"));
- deviceService.addListener(new InternalDeviceListener());
+ deviceService.addListener(internalDeviceListener);
log.info("activated SNMP provider with appId = {} and context props {}", appId, context.getProperties());
modified(context);
@@ -109,6 +114,7 @@
@Deactivate
public void deactivate() {
log.info("deactivate SNMP provider {}", appId);
+ deviceService.removeListener(internalDeviceListener);
}
@Modified