You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
 
      
      
       
      Some job schedules are static and can just be scheduled at start up time. Here is a simple way to do this.
@Name("myJobScheduler")
@Scope(ScopeType.APPLICATION)
@AutoCreate
@Startup
public class MyJobScheduler {
      @Logger
      private Log log;
      private String cron = "0/1 * * * * ?";
      private QuartzTriggerHandle handle;
      public void setCron(String cron) {
            this.cron = cron;
      }
      @Create
      public void schedule() throws Exception {
            handle = MyJob.instance().execute(cron);
		log.debug("Scheduled Job: #0 with: #1", handle.getTrigger().getName(),
				cron);
      }
      @Destroy
      public void unschedule() throws Exception {
            log.debug("Unscheduling Job: #0", handle.getTrigger().getName());
            handle.cancel();
      }
      @Name("myJob")
      @Scope(ScopeType.EVENT)
      @AutoCreate
      public static class MyJob {
            @Logger
            private Log log;
            @Asynchronous
            @Transactional
            public QuartzTriggerHandle execute(@IntervalCron String cron) {
                  log.info("Doing somthing...");
                  return null;
            }
            public static Job instance() {
                  return (Job) Component.getInstance(MyJob.class);
            }
      }
}
 
       