28
28
import com .uber .cadence .internal .worker .LocalActivityWorker ;
29
29
import com .uber .cadence .internal .worker .LocallyDispatchedActivityWorker ;
30
30
import com .uber .cadence .internal .worker .LocallyDispatchedActivityWorker .Task ;
31
+ import com .uber .cadence .internal .worker .NoopSuspendableWorker ;
31
32
import com .uber .cadence .internal .worker .SingleWorkerOptions ;
32
33
import com .uber .cadence .internal .worker .SuspendableWorker ;
33
34
import com .uber .cadence .internal .worker .WorkflowWorker ;
45
46
import java .util .function .Consumer ;
46
47
import java .util .function .Function ;
47
48
48
- /**
49
- * Workflow worker that supports POJO workflow implementations.
50
- */
49
+ /** Workflow worker that supports POJO workflow implementations. */
51
50
public class SyncWorkflowWorker
52
51
implements SuspendableWorker , Consumer <PollForDecisionTaskResponse > {
53
52
@@ -58,7 +57,7 @@ public class SyncWorkflowWorker
58
57
private final POJOActivityTaskHandler laTaskHandler ;
59
58
private final ScheduledExecutorService heartbeatExecutor = Executors .newScheduledThreadPool (4 );
60
59
private final ScheduledExecutorService ldaHeartbeatExecutor = Executors .newScheduledThreadPool (4 );
61
- private LocallyDispatchedActivityWorker ldaWorker ;
60
+ private SuspendableWorker ldaWorker ;
62
61
private POJOActivityTaskHandler ldaTaskHandler ;
63
62
64
63
public SyncWorkflowWorker (
@@ -112,7 +111,10 @@ public SyncWorkflowWorker(
112
111
ldaWorker =
113
112
new LocallyDispatchedActivityWorker (
114
113
service , domain , taskList , locallyDispatchedActivityOptions , ldaTaskHandler );
115
- locallyDispatchedActivityTaskPoller = ldaWorker .getLocallyDispatchedActivityTaskPoller ();
114
+ locallyDispatchedActivityTaskPoller =
115
+ ((LocallyDispatchedActivityWorker ) ldaWorker ).getLocallyDispatchedActivityTaskPoller ();
116
+ } else {
117
+ ldaWorker = new NoopSuspendableWorker ();
116
118
}
117
119
118
120
workflowWorker =
@@ -157,84 +159,69 @@ public void start() {
157
159
// to start LocalActivity Worker.
158
160
if (workflowWorker .isStarted ()) {
159
161
laWorker .start ();
160
- if (ldaWorker != null ) {
161
- ldaWorker .start ();
162
- }
162
+ ldaWorker .start ();
163
163
}
164
164
}
165
165
166
166
@ Override
167
167
public boolean isStarted () {
168
- return workflowWorker .isStarted () && laWorker .isStarted () && (ldaWorker == null || ldaWorker
169
- .isStarted ());
168
+ return workflowWorker .isStarted () && laWorker .isStarted () && ldaWorker .isStarted ();
170
169
}
171
170
172
171
@ Override
173
172
public boolean isShutdown () {
174
- return workflowWorker .isShutdown () && laWorker .isShutdown () && (ldaWorker == null || ldaWorker
175
- .isShutdown ());
173
+ return workflowWorker .isShutdown () && laWorker .isShutdown () && ldaWorker .isShutdown ();
176
174
}
177
175
178
176
@ Override
179
177
public boolean isTerminated () {
180
178
return workflowWorker .isTerminated ()
181
179
&& laWorker .isTerminated ()
182
180
&& ldaHeartbeatExecutor .isTerminated ()
183
- && ( ldaWorker == null || ldaWorker .isTerminated () );
181
+ && ldaWorker .isTerminated ();
184
182
}
185
183
186
184
@ Override
187
185
public void shutdown () {
188
186
laWorker .shutdown ();
189
187
ldaHeartbeatExecutor .shutdown ();
190
- if (ldaWorker != null ) {
191
- ldaWorker .shutdown ();
192
- }
188
+ ldaWorker .shutdown ();
193
189
workflowWorker .shutdown ();
194
190
}
195
191
196
192
@ Override
197
193
public void shutdownNow () {
198
194
laWorker .shutdownNow ();
199
195
ldaHeartbeatExecutor .shutdownNow ();
200
- if (ldaWorker != null ) {
201
- ldaWorker .shutdownNow ();
202
- }
196
+ ldaWorker .shutdownNow ();
203
197
workflowWorker .shutdownNow ();
204
198
}
205
199
206
200
@ Override
207
201
public void awaitTermination (long timeout , TimeUnit unit ) {
208
202
long timeoutMillis = InternalUtils .awaitTermination (laWorker , unit .toMillis (timeout ));
209
203
timeoutMillis = InternalUtils .awaitTermination (ldaHeartbeatExecutor , timeoutMillis );
210
- if (ldaWorker != null ) {
211
- timeoutMillis = InternalUtils .awaitTermination (ldaWorker , timeoutMillis );
212
- }
204
+ timeoutMillis = InternalUtils .awaitTermination (ldaWorker , timeoutMillis );
213
205
InternalUtils .awaitTermination (workflowWorker , timeoutMillis );
214
206
}
215
207
216
208
@ Override
217
209
public void suspendPolling () {
218
210
workflowWorker .suspendPolling ();
219
211
laWorker .suspendPolling ();
220
- if (ldaWorker != null ) {
221
- ldaWorker .suspendPolling ();
222
- }
212
+ ldaWorker .suspendPolling ();
223
213
}
224
214
225
215
@ Override
226
216
public void resumePolling () {
227
217
workflowWorker .resumePolling ();
228
218
laWorker .resumePolling ();
229
- if (ldaWorker != null ) {
230
- ldaWorker .resumePolling ();
231
- }
219
+ ldaWorker .resumePolling ();
232
220
}
233
221
234
222
@ Override
235
223
public boolean isSuspended () {
236
- return workflowWorker .isSuspended () && laWorker .isSuspended () && (ldaWorker == null || ldaWorker
237
- .isSuspended ());
224
+ return workflowWorker .isSuspended () && laWorker .isSuspended () && ldaWorker .isSuspended ();
238
225
}
239
226
240
227
public <R > R queryWorkflowExecution (
0 commit comments