1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers;
12
13 import javax.resource.spi.work.Work;
14
15 public class PollingReceiverWorker implements Work
16 {
17 protected final AbstractPollingMessageReceiver receiver;
18 protected volatile boolean running = false;
19
20 public PollingReceiverWorker(AbstractPollingMessageReceiver pollingMessageReceiver)
21 {
22 super();
23 receiver = pollingMessageReceiver;
24 }
25
26 public AbstractPollingMessageReceiver getReceiver()
27 {
28 return receiver;
29 }
30
31 public boolean isRunning()
32 {
33 return running;
34 }
35
36
37
38 public void run()
39 {
40 if (!receiver.stopped.get())
41 {
42 try
43 {
44 running = true;
45
46 receiver.connected.whenTrue(null);
47 receiver.poll();
48 }
49 catch (InterruptedException e)
50 {
51
52 receiver.stop();
53 }
54 catch (Exception e)
55 {
56 receiver.handleException(e);
57 }
58 finally
59 {
60 running = false;
61 }
62 }
63 }
64
65 public void release()
66 {
67
68 }
69
70 }