[webbeans-dev] CDI Quartz Extension and SE Example

Peter Royle howardmoon at screamingcoder.com
Thu May 28 17:45:25 EDT 2009


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 ==

WebBeans-Quartz.zip

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 ==

MemoryGrapher.zip

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.



  
    
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20090528/cdc4643e/attachment.html 


More information about the weld-dev mailing list