Skip to content

Add Spring Boot auto-configuration for ActivityClient - #3157

Open
Quinn-With-Two-Ns wants to merge 2 commits into
mainfrom
spring-activity-client-3146
Open

Quinn-With-Two-Ns wants to merge 2 commits into
mainfrom
spring-activity-client-3146

Conversation

@Quinn-With-Two-Ns

@Quinn-With-Two-Ns Quinn-With-Two-Ns commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

What changed?

  • Auto-configure a primary temporalActivityClient and namespace/alias-prefixed activity clients, following the existing ScheduleClient wiring and capabilities.
  • Apply namespace data converters, root ActivityClientInterceptor beans, and ordered TemporalOptionsCustomizer<ActivityClientOptions.Builder> beans, including the existing namespace-specific naming convention.
  • Add wiring and options customization tests, documentation, and a changelog entry.

Why?

Applications should be able to inject an ActivityClient without manually reproducing the Spring namespace, converter, and interceptor configuration. Invocation-specific task queues and timeouts remain in StartActivityOptions.

Fixes #3146.


Note

Low Risk
Additive Spring Boot wiring mirroring ScheduleClient patterns; no changes to core SDK client behavior beyond new beans and constructor signature updates in autoconfigure templates.

Overview
Spring Boot Temporal integration now auto-configures ActivityClient alongside existing workflow and schedule clients, so apps can inject standalone activity clients without hand-wiring namespace, converters, and interceptors.

The root namespace gets a primary temporalActivityClient bean; each configured non-root namespace gets <alias-or-namespace>ActivityClient, registered through the same template/post-processor path as other per-namespace clients. Options are built via ActivityClientOptions with per-namespace data converters, ordered TemporalOptionsCustomizer<ActivityClientOptions.Builder> beans (including the existing *ActivityClientCustomizer naming for non-root namespaces), and root-only ActivityClientInterceptor registration (non-root interceptors via customizers). ClientTemplate lazily creates the client from shared service stubs; deprecated template constructors without activity-client parameters were removed.

Documentation, changelog, and tests cover wiring, customizer ordering, and multi-namespace beans.

Reviewed by Cursor Bugbot for commit 79b87c4. Bugbot is set up for automated code reviews on this repo. Configure here.

@Quinn-With-Two-Ns
Quinn-With-Two-Ns marked this pull request as ready for review October 20, 2026 17:34
@Quinn-With-Two-Ns
Quinn-With-Two-Ns requested a review from a team as a code owner October 20, 2026 17:35

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Spring Boot auto-configuration for standalone ActivityClient

1 participant