Ich teste die neue CDI2.0 Pre-Release und ich erwarte das BeanManager der Lage sein, asynchron Ereignisse auszulösen.CDI2.0 Warum kann der BeanManager keine asynchronen Ereignisse auslösen?
@Inject
BeanManager beanManager;
public void fireEvents() {
for (int i = 0; i < 10; i++) {
beanManager.fireEvent(new LightEvent("Light Event " + i));
beanManager.fireEvent(new HeavyEvent("Heavy Event " + i));
}
}
Als ich async Ereignisse testen wollte, sah ich, dass die BeanManager kein fireAsync() -Methode hat:
In CDI 1.2 ich dies zu tun war. Stattdessen muss ich die Ereignisse andersherum auslösen:
@Inject
private Event<LightEvent> lightEvent;
@Inject
private Event<HeavyEvent> heavyEvent;
public void fireAsyncEvents() {
for (int i = 0; i < 10; i++) {
lightEvent.fireAsync(new LightEvent("light " + i));
heavyEvent.fireAsync(new HeavyEvent("heavy " + i));
}
}
Jetzt funktioniert das gut, aber ich muss die Ereignisse zuerst definieren. Gibt es Pläne, eine fireAsync() -Methode zum Beanmanager hinzufügen?