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.

Reply via email to