use of org.osgi.service.event.Event in project karaf by apache.
the class EventCollectorTest method testAddRemoveConsumer.
@Test
public void testAddRemoveConsumer() {
final AtomicInteger count = new AtomicInteger();
Consumer<Event> countingConsumer = event -> count.incrementAndGet();
EventCollector collector = new EventCollector();
collector.handleEvent(event("myTopic"));
collector.addConsumer(countingConsumer);
assertThat(count.get(), equalTo(1));
collector.handleEvent(event("another"));
assertThat(count.get(), equalTo(2));
collector.removeConsumer(countingConsumer);
collector.handleEvent(event("and/another"));
assertThat(count.get(), equalTo(2));
}
use of org.osgi.service.event.Event in project karaf by apache.
the class EventPrinterTest method event.
private Event event() {
HashMap<String, Object> props = new HashMap<>();
props.put("a", "b");
props.put("c", new String[] { "d", "e" });
Date date;
try {
date = df.parse("2016-01-01 12:00:00");
} catch (ParseException e) {
throw new RuntimeException(e);
}
props.put("timestamp", date.getTime());
return new Event("myTopic", props);
}
use of org.osgi.service.event.Event in project karaf by apache.
the class EventAdminListener method featureEvent.
public void featureEvent(FeatureEvent event) {
try {
EventAdmin eventAdmin = tracker.getService();
if (eventAdmin == null) {
return;
}
Dictionary<String, Object> props = new Hashtable<>();
props.put(EventConstants.TYPE, event.getType());
props.put(EventConstants.EVENT, event);
props.put(EventConstants.TIMESTAMP, System.currentTimeMillis());
props.put(EventConstants.FEATURE_NAME, event.getFeature().getName());
props.put(EventConstants.FEATURE_VERSION, event.getFeature().getVersion());
String topic;
switch(event.getType()) {
case FeatureInstalled:
topic = EventConstants.TOPIC_FEATURES_INSTALLED;
break;
case FeatureUninstalled:
topic = EventConstants.TOPIC_FEATURES_UNINSTALLED;
break;
default:
throw new IllegalStateException("Unknown features event type: " + event.getType());
}
eventAdmin.postEvent(new Event(topic, props));
} catch (IllegalStateException e) {
LOGGER.warn("Unable to post event to EventAdmin", e);
}
}
use of org.osgi.service.event.Event in project sling by apache.
the class SlingAuthenticator method postLoginEvent.
private void postLoginEvent(final AuthenticationInfo authInfo) {
final Dictionary<String, Object> properties = new Hashtable<String, Object>();
properties.put(SlingConstants.PROPERTY_USERID, authInfo.getUser());
properties.put(AuthenticationInfo.AUTH_TYPE, authInfo.getAuthType());
EventAdmin localEA = this.eventAdmin;
if (localEA != null) {
localEA.postEvent(new Event(AuthConstants.TOPIC_LOGIN, properties));
}
}
use of org.osgi.service.event.Event in project sling by apache.
the class ITConfigFragments method testConfigProviderWithListener.
@Test
public void testConfigProviderWithListener() throws Exception {
FileConfigProvider fcp = new FileConfigProvider();
fcp.fileName = "test-reset-config-1.xml";
bundleContext.registerService(ConfigProvider.class.getName(), fcp, null);
delay();
ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("foo.reset.1");
assertTrue(logger.isDebugEnabled());
assertNotNull(logger.getAppender("FOO-RESET-FILE-1"));
fcp.fileName = "test-reset-config-2.xml";
eventAdmin.sendEvent(new Event(RESET_EVENT_TOPIC, (Dictionary) null));
delay();
assertFalse(logger.isDebugEnabled());
assertTrue(logger.isInfoEnabled());
assertNotNull(logger.getAppender("FOO-RESET-FILE-2"));
}
Aggregations