Hi,
I know you're all really busy right now with the spec updates, but I've got a new extension for possible inclusion into WebBeans, plus a new example app for SE which uses it.
== Quartz Extension ==
The extension is a Quartz extension. It basically fires events @Every Second, @Every Minute and @Every Hour, which can be observed like so:
public void updateSomething(@Observes @Every Hour hour) { // blah }
On startup the extension first checks for the presence of observers for each type of event and if there are no observers for a particular type of event, no events will be scheduled.
I intend to extend it by:
1) introducing a way to define arbitrary schedules (in annotations or in a properties file which is then referenced by name in an annotation - which can then be made typesafe by subclassing the annotation). Eg:
package org.jboss.webbeans.extension.scheduler;
public @interface Scheduled {
String name();
}
-----------
public @interface AfterHours extends Scheduled{
String name() default "afterHours";
}
-----------
schedule.properties:
afterHours=0 1 * * * *
-----------
public void batchProcess(@Observes @AfterHours Schedule schedule) { ... }
2) Adding whatever is necessary to make this usable in EE environment. Any pointers?
3) Any other suggestions?
== Memory Graph Example ==
This is another Swing based example, which renders a graph of the VM's free memory, updating every second and calling garbage collection every minute using the above extension. It's a nice concise example of how to bootstrap and shutdown SE, how to observe events and how to use the injectable logger. Plus everyone loves a pretty graph!
I know there is some obvious clean up work required, and maybe removing the name Quartz (?) - which I'm happy to do prior to checking in.
What do you think?
Pete.