Skip to content

Commit 9e2ed4f

Browse files
patbeqoclaude
andcommitted
Add SimplePlugin context propagators to activity clients
SimplePlugin.addContextPropagators configured workflow clients but not activity clients, so standalone activities started through a plugin- configured ActivityClient carried no propagated headers. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 20c3bfb commit 9e2ed4f

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

‎temporal-sdk/src/main/java/io/temporal/common/SimplePlugin.java‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,15 @@ public void configureScheduleClient(@Nonnull ScheduleClientOptions.Builder build
259259

260260
@Override
261261
public void configureActivityClient(@Nonnull ActivityClientOptions.Builder builder) {
262+
// Add context propagators
263+
if (!contextPropagators.isEmpty()) {
264+
List<ContextPropagator> existing = builder.build().getContextPropagators();
265+
List<ContextPropagator> combined = new ArrayList<>(existing);
266+
combined.addAll(contextPropagators);
267+
builder.setContextPropagators(combined);
268+
}
269+
270+
// Add client interceptors
262271
if (!activityClientInterceptors.isEmpty()) {
263272
List<ActivityClientInterceptor> combined = new ArrayList<>(builder.build().getInterceptors());
264273
combined.addAll(activityClientInterceptors);

‎temporal-sdk/src/test/java/io/temporal/common/SimplePluginBuilderTest.java‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import io.temporal.client.WorkflowClientOptions;
3131
import io.temporal.client.schedules.ScheduleClientOptions;
3232
import io.temporal.client.schedules.ScheduleClientPlugin;
33+
import io.temporal.common.context.ContextPropagator;
3334
import io.temporal.common.converter.DataConverter;
3435
import io.temporal.common.interceptors.ActivityClientInterceptor;
3536
import io.temporal.common.interceptors.ActivityClientInterceptorBase;
@@ -88,6 +89,18 @@ public void testAddWorkerInterceptors() {
8889
assertSame(interceptor, interceptors[0]);
8990
}
9091

92+
@Test
93+
public void testAddContextPropagatorsToActivityClient() {
94+
ContextPropagator propagator = mock(ContextPropagator.class);
95+
96+
SimplePlugin plugin = SimplePlugin.newBuilder("test").addContextPropagators(propagator).build();
97+
98+
ActivityClientOptions.Builder builder = ActivityClientOptions.newBuilder();
99+
((ActivityClientPlugin) plugin).configureActivityClient(builder);
100+
101+
assertEquals(Collections.singletonList(propagator), builder.build().getContextPropagators());
102+
}
103+
91104
@Test
92105
public void testAddClientInterceptors() {
93106
WorkflowClientInterceptor interceptor = new WorkflowClientInterceptorBase() {};

0 commit comments

Comments
 (0)