01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.core.ejb;
34:
35: import org.libresource.Libresource;
36:
37: import org.libresource.core.interfaces.LibresourceStatsService;
38:
39: import org.libresource.scheduler.LibresourceJob;
40:
41: import java.util.Date;
42:
43: import javax.ejb.MessageDrivenBean;
44: import javax.ejb.MessageDrivenContext;
45:
46: import javax.jms.Message;
47: import javax.jms.MessageListener;
48:
49: /**
50: * @ejb.bean
51: * name="ComputeStatsJobsListener"
52: * transaction-type="Container"
53: * acknowledge-mode="Auto-acknowledge"
54: * destination-type="javax.jms.Topic"
55: * subscription-durability="NonDurable"
56: * message-selector="name LIKE 'project.stats.compute'"
57: *
58: * @jonas.bean ejb-name="ComputeStatsJobsListener"
59: *
60: * @jonas.message-driven-destination jndi-name="libresource.jobs"
61: *
62: * @jboss.destination-jndi-name name="topic/libresource.jobs"
63: *
64: * @ejb.transaction type="NotSupported"
65: */
66: public class ComputeStatsJobsListenerBean implements MessageDrivenBean,
67: MessageListener {
68: private transient MessageDrivenContext mdbContext;
69:
70: public void onMessage(Message message) {
71: try {
72: LibresourceJob libresourceJob = LibresourceJob
73: .toLibresourceJob(message);
74: LibresourceStatsService libresourceStatsService = (LibresourceStatsService) Libresource
75: .getService("LibresourceStats");
76: libresourceStatsService.computeStats(new Date());
77: } catch (Exception e) {
78: }
79: }
80:
81: // standard call back methods
82: public void setMessageDrivenContext(MessageDrivenContext ctx) {
83: mdbContext = ctx;
84: }
85:
86: public void ejbRemove() {
87: }
88:
89: public void ejbCreate() {
90: }
91: }
|