Hi,
I tried your approach but had a problem which i expected will occur. Whiles
seam is starting up, the contexts are not yet active. Since my email is made up
of facelets templates, i could only send data to them when contexts are alive.
However i finally sorted it out.
|
| @Stateful
| @Scope(ScopeType.APPLICATION)
| @Name("startupManager")
| public class StartupManager implements StartupManagerLocal{ // create
Interface
|
|
|
| @Create
| public void create() {
| TimerHandlerLocal timerHandler =
(TimerHandlerLocal)Component.getInstance(TimerHandler.Class);
| timerHandler.sendNotifications;
| }
|
|
| @Remove
| public void destroy() {
| }
| }
|
The TimerHandler class:
| @Stateful
| @Name("timerhandler")
| public class TimerHandler implements TimerHandlerLocal { // create Interface
|
|
| @In
| private EntityManager entityManager;
|
| @In
| private MailRender mailRenderer;
|
| @Asynchronous
| @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
| public QuartzTriggerHandle createProcessing(String string) {
| List<Customer> customers = entityManager.createQuery("Select c
| from Customer where
c.notification=true").getResultList();
| Context.getSessionContext().set("customers",customers);
| mailRenderer.sendNotification();
| Contexts.getSessionContxt().set("customers",null);
|
| return new QuartzTriggerHandle("notifications");
| }
|
Lastly, find somewhere to inject the StartupMonitor so that it starts up on its
own. I think your login/authentication class is the best place.
| @Scope(ScopeType.SESSION)
| @Name("authenticator")
| public class Authenticator implements java.io.Serializable {
|
| @In(create=true)
| StartupMonitor startupMonitor
| ...
| }
|
Since the StartupMonitor is APPLICATION scoped, it's @Create method will be
called when the first person logs into the application and will run until
applications is redeployed.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078307#4078307
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4078307
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user