Hi Allard,
I am using Spring, I have tried to configure the EventScheduler with SchedulerFactoryBean like this:
@Bean
public EventScheduler eventScheduler(EventBus eventBus, SchedulerFactoryBean schedulerFactoryBean) {
final QuartzEventScheduler quartzEventScheduler = new QuartzEventScheduler();
quartzEventScheduler.setEventBus(eventBus);
quartzEventScheduler.setScheduler(schedulerFactoryBean.getScheduler());
return quartzEventScheduler;
}
but it picks always RAMJobStore, I am using the SpringResourceInjector
Here is my Saga configuration class
String sagaCollection = "sagas";
@Bean
public SagaRepository sagaRepository() {
MongoTemplate template = new DefaultMongoTemplate(mongo, databaseName, sagaCollection , null, null);
MongoSagaRepository rep = new MongoSagaRepository(template);
rep.setResourceInjector(resourceInjector());
return rep;
}
@Bean
public AnnotatedSagaManager sagaManager(SagaRepository sagaRepository, EventBus eventBus) {
final AnnotatedSagaManager annotatedSagaManager = new AnnotatedSagaManager(
sagaRepository, sagaFactory(),
PostStatusSaga.class
);
eventBus.subscribe(annotatedSagaManager);
return annotatedSagaManager;
}
@Bean
public SagaFactory sagaFactory() {
final GenericSagaFactory sagaFactory = new GenericSagaFactory();
sagaFactory.setResourceInjector(resourceInjector());
return sagaFactory;
}
@Bean
public EventScheduler eventScheduler(EventBus eventBus, SchedulerFactoryBean schedulerFactoryBean) {
final QuartzEventScheduler quartzEventScheduler = new QuartzEventScheduler();
quartzEventScheduler.setEventBus(eventBus);
quartzEventScheduler.setScheduler(schedulerFactoryBean.getScheduler());
return quartzEventScheduler;
}
@Bean
public ResourceInjector resourceInjector() {
return new SpringResourceInjector();
}
@Bean
public SchedulerFactoryBean eventSchedulerFactoryBean() {
return new SchedulerFactoryBean();
}
Thanks a lot for your efforts.