package org.rhq.plugins.perftest.event;
import java.util.HashSet;
import java.util.Set;
import org.rhq.core.domain.event.Event;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.core.pluginapi.event.EventPoller;
import org.rhq.core.pluginapi.inventory.ResourceContext;
/**
* Emits events when polled. Set the following system properties to define behavior:
*
* rhq.perftest.events.polling-interval (in seconds; if this is not set, this poller object will never be created)
* rhq.perftest.events.count (default is "1")
* rhq.perftest.events.severity (default is "INFO")
*/
public class PerfTestEventPoller implements EventPoller {
public static final String PERFTEST_EVENT_TYPE = "PerfTestEventType";
public static final String SYSPROP_EVENTS_POLLING_INTERVAL = "rhq.perftest.events.polling-interval";
public static final String SYSPROP_EVENTS_COUNT = "rhq.perftest.events.count";
public static final String SYSPROP_EVENTS_SEVERITY = "rhq.perftest.events.severity";
private final ResourceContext resourceContext;
public PerfTestEventPoller(ResourceContext resourceContext) {
this.resourceContext = resourceContext;
}
public String getEventType() {
return PERFTEST_EVENT_TYPE;
}
public Set<Event> poll() {
int count = Integer.parseInt(System.getProperty(SYSPROP_EVENTS_COUNT, "1"));
String severityString = System.getProperty(SYSPROP_EVENTS_SEVERITY, EventSeverity.INFO.name());
EventSeverity severity = EventSeverity.valueOf(severityString);
Set<Event> events = new HashSet<Event>(count);
for (int i = 0; i < count; i++) {
Event event = new Event(PERFTEST_EVENT_TYPE, "source.loc", System.currentTimeMillis(), severity, "event #"
+ i);
events.add(event);
}
return events;
}
}