Я тестирую новый предварительный выпуск CDI2.0, и я ожидал, что BeanManager сможет запускать события асинхронно.CDI2.0 Почему BeanManager не может запускать Async-события?
В CDI 1.2 я делал это:
@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));
}
}
Как я хотел проверить асинхронного события, я увидел, что BeanManager не имеет метода с fireAsync(). Вместо этого я должен запускать события по-другому:
@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));
}
}
Теперь это прекрасно работает, но я должен определить события в первую очередь. Есть ли планы добавить метод FireAsync() в Beanmanager?