Nothing like sending in a request to get the brain going. I found that I can use EventIpcManagerFactory to get an EventIpcManager to which I can register an EventListener of my own. The only tricky part is figuring out a good place to arrange for the class to register itself. Is there a clean way to do it? At worst, I can have a NotificationStrategy registered that instantiates the listener. A hack, but it works.
Gary Levin RRC 1N345 Telcordia Technologies > -----Original Message----- > From: Levin, Gary Marc > Sent: Friday, November 21, 2008 12:35 PM > To: 'opennms-devel@lists.sourceforge.net' > Subject: RE: Fetching an Event in a NotificationStrategy > > This is a follow-up to the previous question. I found > org.opennms.netmgt.xml.event.Event, and I can get the event from > NotificationFactory based on the EventId in the notification. > The problem > is that the event retrieved is incomplete. It is missing the > parameters > (which are passed to the notification, because they appear in my > description). > > * No parameters show up in the xml produced by Event.marshal(). > * Event.getParms() returns null > (1) Is this a bug in org.opennms.netmgt.xml.event.Event? > (2) Is this a bug in > org.opennms.netmgt.xml.event.NotificationFactory.getEvent()? > (Producing an > incomplete Event) > (3) Is there an alternative way to get the original event from the > notification? (I thought that EventFactory would be the way > to go, but that > is not accessible from a NotificationStrategy.) > > > > > > > I am trying to forward the event to another system. If > necessary, I can put > enough information into the notification description so that > I can manually > construct the event, but it seems like a fragile solution. > > > > > If there is a way to capture the event *before* it gets to be a > notification, that would be even better. An EventListener > would be ideal. > (This is where the Uses page would be very helpful.) Is > there a way to > register a new EventListener? > > > > > Gary Levin > RRC 1N345 > Telcordia Technologies > > > > -----Original Message----- > > From: Levin, Gary Marc [mailto:[EMAIL PROTECTED] > > Sent: Friday, October 31, 2008 3:56 PM > > To: opennms-devel@lists.sourceforge.net > > Subject: [opennms-devel] Fetching an Event in a NotificationStrategy > > > > > I need to fetch the Event that triggered a Notification. I > have written an > implementation of NotificationStrategy, which is correctly invoked by > notifd. The notification places the eventId into the text > message, which is > included in the list of arguments passed to > NotificationStrategy.send(). I > log this information, so I am sure it is being received correctly. > > My code then extracts the eventId, parses it into an integer, > eid, and tries > calling EventFactory.getEvent(eid). It gets to that point, > but the call > never returns. I catch SQLException, and that is not thrown either. > > I tried catching Throwable and found the problem to be > java.lang.NoClassDefFoundError: > org/opennms/web/event/EventFactory > I am guessing this is caused by the EventFactory being loaded > by a different > classloader than my NotificationStrategy. This had me go > look for another > way to get the event, using the jars in lib and not web-apps. > > > > I was trying to learn more about the API and noticed that although > http://www.opennms.org/documentation/java-apidocs-stable/ > org/opennms/netmgt/xml/event/Event.html > exists, if you go to the frame view, this class and its > package are not in > the list of packages and classes. > > I found that what I needed was > org.opennms.netmgt.xml.event.Event, which I > can get from > org.opennms.netmgt.xml.event.NotificationFactory. This would > have been easier to find if the Javadoc included that > package. Also,having > the Uses page when I am trying to learn an API. This lets me > work backwards > from what I want, in this case an Event. > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Please read the OpenNMS Mailing List FAQ: http://www.opennms.org/index.php/Mailing_List_FAQ opennms-devel mailing list To *unsubscribe* or change your subscription options, see the bottom of this page: https://lists.sourceforge.net/lists/listinfo/opennms-devel