1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.jca;
12
13 import org.mule.api.MuleException;
14 import org.mule.config.ImmutableThreadingProfile;
15
16 import java.util.concurrent.RejectedExecutionException;
17
18 import javax.resource.spi.work.ExecutionContext;
19 import javax.resource.spi.work.Work;
20 import javax.resource.spi.work.WorkException;
21 import javax.resource.spi.work.WorkListener;
22
23
24
25
26
27 public class DelegateWorkManager implements org.mule.api.context.WorkManager
28 {
29 private final javax.resource.spi.work.WorkManager workManager;
30
31 public DelegateWorkManager(javax.resource.spi.work.WorkManager workManager2)
32 {
33 this.workManager = workManager2;
34 }
35
36 public void doWork(Work work) throws WorkException
37 {
38 workManager.doWork(work);
39 }
40
41 public void doWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener)
42 throws WorkException
43 {
44 workManager.doWork(work, l, executionContext, workListener);
45 }
46
47 public long startWork(Work work) throws WorkException
48 {
49 return workManager.startWork(work);
50 }
51
52 public long startWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener)
53 throws WorkException
54 {
55 return workManager.startWork(work, l, executionContext, workListener);
56 }
57
58 public void scheduleWork(Work work) throws WorkException
59 {
60 workManager.scheduleWork(work);
61 }
62
63 public void scheduleWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener)
64 throws WorkException
65 {
66 workManager.scheduleWork(work, l, executionContext, workListener);
67 }
68
69 public void execute(Runnable command)
70 {
71 try
72 {
73 this.scheduleWork(new RunnableWorkAdapter(command));
74 }
75 catch (WorkException wex)
76 {
77
78
79 throw new RejectedExecutionException(wex);
80 }
81 }
82
83 public void start() throws MuleException
84 {
85
86 }
87
88 public boolean isStarted()
89 {
90 return true;
91 }
92
93 public void stop() throws MuleException
94 {
95
96 }
97
98 public void dispose()
99 {
100
101 }
102
103 protected static class RunnableWorkAdapter implements Work
104 {
105 private final Runnable command;
106
107 public RunnableWorkAdapter(Runnable command)
108 {
109 super();
110 this.command = command;
111 }
112
113 public void release()
114 {
115
116 }
117
118 public void run()
119 {
120 command.run();
121 }
122 }
123
124 public ImmutableThreadingProfile getThreadingProfile()
125 {
126 throw new UnsupportedOperationException("Container does not have a Mule ThreadingProfile");
127 }
128
129 }