From 899ea8bc18f07c0deab62b9f0d7ae15d4a0006fe Mon Sep 17 00:00:00 2001 From: kmcpeake Date: Mon, 4 Jan 2016 15:00:45 +0000 Subject: [PATCH] [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 --- providers/snmp/alarm/pom.xml | 43 +------------------ .../alarm/impl/SnmpAlarmProviderService.java | 8 +++- providers/snmp/app/features.xml | 1 + 3 files changed, 9 insertions(+), 43 deletions(-) diff --git a/providers/snmp/alarm/pom.xml b/providers/snmp/alarm/pom.xml index 2b13e1437c..6b03c85003 100644 --- a/providers/snmp/alarm/pom.xml +++ b/providers/snmp/alarm/pom.xml @@ -53,14 +53,12 @@ org.osgi org.osgi.compendium - 5.0.0 jar org.onosproject onos-api - ${project.version} @@ -74,7 +72,6 @@ org.onosproject onlab-osgi - ${project.version} tests test @@ -82,7 +79,6 @@ org.onosproject onos-api - ${project.version} tests test @@ -90,19 +86,16 @@ junit junit - 4.11 test org.hamcrest hamcrest-core - 1.3 test org.hamcrest hamcrest-library - 1.3 test @@ -114,41 +107,7 @@ - - org.apache.maven.plugins - maven-shade-plugin - 2.3 - - - - com.btisystems:snmp-core - - ** - - - - com.btisystems.mibbler.mibs:bti7000 - - ** - - - - com.btisystems.mibbler.mibs:net-snmp - - ** - - - - - - - package - - shade - - - - + org.apache.felix maven-scr-plugin 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 4d2c658ec4..65bd8c2dd7 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.osgi.service.component.ComponentContext; 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 @@ import org.onosproject.net.device.DeviceService; * 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 class SnmpAlarmProviderService extends AbstractProvider implements AlarmP 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 @@ public class SnmpAlarmProviderService extends AbstractProvider implements AlarmP 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 @@ public class SnmpAlarmProviderService extends AbstractProvider implements AlarmP @Deactivate public void deactivate() { log.info("deactivate SNMP provider {}", appId); + deviceService.removeListener(internalDeviceListener); } @Modified diff --git a/providers/snmp/app/features.xml b/providers/snmp/app/features.xml index 0874f54575..b8ab857f67 100644 --- a/providers/snmp/app/features.xml +++ b/providers/snmp/app/features.xml @@ -21,6 +21,7 @@ mvn:io.netty/netty/3.9.2.Final mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snmp4j/2.3.4_1 mvn:${project.groupId}/onos-snmp-provider-device/${project.version} + mvn:${project.groupId}/onos-snmp-provider-alarm/${project.version} mvn:com.btisystems/snmp-core/1.3-SNAPSHOT mvn:com.btisystems.mibbler.mibs/bti7000/1.0-SNAPSHOT mvn:com.btisystems.mibbler.mibs/net-snmp/1.0-SNAPSHOT