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