Hi!

Recently I tested Seam Cron module, especially scheduling features. From my point of view Seam Cron module (as well as Seam 2) is still not usable for quite common scheduling scenarios. Below are some comments/observations/suggestions - most of them come from real app needs and are closely related to quartz because I used this lib in many JEE apps before.


In any case I don't want to criticize but make Seam 3 more useful  :-) !
If needed I can offer some help.

* Seam Cron has fixed quartz configuration (no way to change it); this is not a good idea and will surely limit module user (QUARTZ - org.jboss.seam.cron.scheduling.quartz.QuartzScheduleProvider)
* I'm missing operations on scheduler; e.g. send event to pause or resume all jobs (API)
* job observers "may be/and may inject" @Dependant or @ApplicationScoped beans only; sometimes its very useful to reuse request scoped components - e.g. inject service used also from GUI (API/QUARTZ, in weld/quartz this could be accomplished with org.quartz.JobListener and org.jboss.weld.context.bound.BoundRequestContext)
* it's not possible to schedule jobs dynamically - for instance first get definitions (DB, XML, WS) and then schedule them (API, maybe schedule job by firing some special event)
* fired jobs are always stateless; sometimes its very practical to have stateful jobs / implement org.quartz.StatefulJob (API, QUARTZ - org.jboss.seam.cron.scheduling.quartz.TriggerJob implements org.quartz.Job)
* trigger may contain next fire time info - sometimes very practical to know (API - org.jboss.seam.cron.api.scheduling.Trigger)
* finally is there a reason not to use new stable versions of quartz, e.g. 1.8.x or 2.0.x?

Martin

-- 
Martin Kouba
JBoss Quality Assurance Engineer 
E-mail: mkouba@redhat.com
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyòova 99/71, 612 45, Brno, Czech Republic