Skip to content

Split DaprClientImpl into package-private classes per building block #1875

Open

Description

@javier-aliaga

Describe the feature

sdk/src/main/java/io/dapr/client/DaprClientImpl.java is 2,771 lines. Every building block adds to it, so reviews and rebases keep getting harder.

Proposal: move the method bodies into package-private classes in io.dapr.client, one per building block. Each public method on DaprClientImpl keeps its signature and delegates in one line.

This is not a breaking change:

  • DaprClientImpl is public, but every constructor is package-private, so nothing outside io.dapr.client can subclass it.
  • All public method signatures stay the same.
  • The new classes are package-private, so the public API does not grow.
  • DaprClientGrpcTest and DaprPreviewClientGrpcTest test through the public methods and should pass unchanged.

Planned PRs, one per row (line numbers from 00f769f25):

Constructors, service invocation, bindings and lifecycle stay in DaprClientImpl. The target is under 800 lines.

Release Note

RELEASE NOTE: N/A (internal refactor, no API change)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions