Hi,
I try to initialize and start a service when my webapp start.
My service is a simple Quartz scheduler with a job. But i've some trouble to
start the service.
As i can see Tapestry IOC use lazy initialization so my service is build
only when used.
My code in my Appodule.java is like :
// The scheduler
public Scheduler buildScheduler() throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.start();
return scheduler;
}
// Register my service
public static void bind(ServiceBinder binder) {
binder.bind(IndexScheduler.class, IndexSchedulerImpl.class);
}
// The trigger
public Trigger buildTrigger() {
return TriggerUtils.makeMinutelyTrigger(5);
}
My IndexSchedulerImpl take two contructor's parameters : scheduler and
trigger.
The probleme is my object is never instanciate if nobody call us (lazy
initialization)
I reach my goal if i pass my indexscheduler in a method used by tapestry
like contributeRequestHandler(OrderedConfiguration<RequestFilter>
configuration ...
IndexScheduler indexScheduler) and add @EagerLoad to my bind method.
But i'm sure there is a more clean practice to reach my goal.
Thank's.