Full Code of dapr/java-sdk for AI

master 4ec9b89114ef cached
1811 files
34.8 MB
6.0M tokens
6717 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (24,010K chars total). Download the full file to get everything.
Repository: dapr/java-sdk
Branch: master
Commit: 4ec9b89114ef
Files: 1811
Total size: 34.8 MB

Directory structure:
gitextract_5uciof7p/

├── .codecov.yaml
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── discussion.md
│   │   ├── feature_request.md
│   │   ├── proposal.md
│   │   └── question.md
│   ├── dependabot.yml
│   ├── holopin.yml
│   ├── pull_request_template.md
│   ├── scripts/
│   │   ├── automerge.py
│   │   ├── create-release.sh
│   │   ├── update_docs.sh
│   │   └── update_sdk_version.sh
│   └── workflows/
│       ├── automerge-bot.yml
│       ├── backport.yaml
│       ├── build.yml
│       ├── create-release.yml
│       ├── dapr_bot.yml
│       ├── fossa.yml
│       ├── validate-docs.yml
│       └── validate.yml
├── .gitignore
├── .gitmodules
├── .java_header
├── .mvn/
│   └── wrapper/
│       └── maven-wrapper.properties
├── .sdkmanrc
├── CODEOWNERS
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── checkstyle.xml
├── dapr-spring/
│   ├── dapr-spring-6-data/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring6/
│   │                           └── data/
│   │                               ├── AbstractDaprKeyValueAdapter.java
│   │                               ├── DaprKeyValueAdapterResolver.java
│   │                               ├── DaprKeyValueTemplate.java
│   │                               ├── DefaultIdentifierGenerator.java
│   │                               ├── GeneratingIdAccessor.java
│   │                               ├── KeyValueAdapterResolver.java
│   │                               ├── MySQLDaprKeyValueAdapter.java
│   │                               ├── PostgreSQLDaprKeyValueAdapter.java
│   │                               └── repository/
│   │                                   ├── config/
│   │                                   │   ├── DaprRepositoriesRegistrar.java
│   │                                   │   ├── DaprRepositoryConfigurationExtension.java
│   │                                   │   └── EnableDaprRepositories.java
│   │                                   └── query/
│   │                                       ├── DaprPredicate.java
│   │                                       ├── DaprPredicateBuilder.java
│   │                                       └── DaprPredicateQueryCreator.java
│   ├── dapr-spring-bom/
│   │   └── pom.xml
│   ├── dapr-spring-boot-4-autoconfigure/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── spring/
│   │       │   │               └── boot4/
│   │       │   │                   └── autoconfigure/
│   │       │   │                       └── client/
│   │       │   │                           ├── DaprClientSB4AutoConfiguration.java
│   │       │   │                           ├── DaprJackson3SB4AutoConfiguration.java
│   │       │   │                           └── Jackson3ObjectSerializer.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring/
│   │       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot4/
│   │                               └── autoconfigure/
│   │                                   └── client/
│   │                                       ├── DaprClientAutoConfigurationTest.java
│   │                                       ├── DaprJackson3SB4AutoConfigurationTest.java
│   │                                       ├── DaprWorkflowsRegistrationTests.java
│   │                                       ├── Jackson3ObjectSerializerTest.java
│   │                                       ├── WorkflowTestApplication.java
│   │                                       └── workflows/
│   │                                           ├── TestActivity.java
│   │                                           └── TestWorkflow.java
│   ├── dapr-spring-boot-autoconfigure/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── spring/
│   │       │   │               └── boot/
│   │       │   │                   └── autoconfigure/
│   │       │   │                       └── client/
│   │       │   │                           └── DaprClientAutoConfiguration.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring/
│   │       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot/
│   │                               └── autoconfigure/
│   │                                   └── client/
│   │                                       ├── DaprClientAutoConfigurationTest.java
│   │                                       ├── DaprClientObservationAutoConfigurationTest.java
│   │                                       ├── DaprWorkflowsRegistrationTests.java
│   │                                       ├── WorkflowTestApplication.java
│   │                                       └── workflows/
│   │                                           ├── TestActivity.java
│   │                                           └── TestWorkflow.java
│   ├── dapr-spring-boot-observation/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── dapr/
│   │       │               └── spring/
│   │       │                   └── observation/
│   │       │                       └── client/
│   │       │                           ├── ObservationDaprClient.java
│   │       │                           ├── ObservationDaprWorkflowClient.java
│   │       │                           └── TraceContextFormat.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── observation/
│   │                               └── client/
│   │                                   ├── ObservationDaprClientTest.java
│   │                                   └── ObservationDaprWorkflowClientTest.java
│   ├── dapr-spring-boot-properties/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── dapr/
│   │       │               └── spring/
│   │       │                   └── boot/
│   │       │                       └── properties/
│   │       │                           ├── client/
│   │       │                           │   ├── ClientPropertiesDaprConnectionDetails.java
│   │       │                           │   ├── DaprClientProperties.java
│   │       │                           │   └── DaprConnectionDetails.java
│   │       │                           ├── pubsub/
│   │       │                           │   └── DaprPubSubProperties.java
│   │       │                           └── statestore/
│   │       │                               └── DaprStateStoreProperties.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot/
│   │                               └── properties/
│   │                                   ├── client/
│   │                                   │   └── DaprClientPropertiesTest.java
│   │                                   ├── pubsub/
│   │                                   │   └── DaprPubSubPropertiesTest.java
│   │                                   └── statestore/
│   │                                       └── DaprStateStorePropertiesTest.java
│   ├── dapr-spring-boot-starters/
│   │   ├── dapr-spring-boot-4-starter/
│   │   │   └── pom.xml
│   │   ├── dapr-spring-boot-4-starter-test/
│   │   │   └── pom.xml
│   │   ├── dapr-spring-boot-starter/
│   │   │   └── pom.xml
│   │   └── dapr-spring-boot-starter-test/
│   │       └── pom.xml
│   ├── dapr-spring-boot-tests/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── spring/
│   │           │               └── boot/
│   │           │                   └── testcontainers/
│   │           │                       └── service/
│   │           │                           └── connection/
│   │           │                               └── DaprContainerConnectionDetailsFactory.java
│   │           └── resources/
│   │               └── META-INF/
│   │                   └── spring.factories
│   ├── dapr-spring-data/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── data/
│   │                               ├── AbstractDaprKeyValueAdapter.java
│   │                               ├── DaprKeyValueAdapterResolver.java
│   │                               ├── DaprKeyValueTemplate.java
│   │                               ├── DefaultIdentifierGenerator.java
│   │                               ├── GeneratingIdAccessor.java
│   │                               ├── KeyValueAdapterResolver.java
│   │                               ├── MySQLDaprKeyValueAdapter.java
│   │                               ├── PostgreSQLDaprKeyValueAdapter.java
│   │                               └── repository/
│   │                                   ├── config/
│   │                                   │   ├── DaprRepositoriesRegistrar.java
│   │                                   │   ├── DaprRepositoryConfigurationExtension.java
│   │                                   │   └── EnableDaprRepositories.java
│   │                                   └── query/
│   │                                       ├── DaprPredicate.java
│   │                                       ├── DaprPredicateBuilder.java
│   │                                       └── DaprPredicateQueryCreator.java
│   ├── dapr-spring-messaging/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── messaging/
│   │                               ├── DaprMessagingOperations.java
│   │                               ├── DaprMessagingTemplate.java
│   │                               └── observation/
│   │                                   ├── DaprMessagingObservationConvention.java
│   │                                   ├── DaprMessagingObservationDocumentation.java
│   │                                   ├── DaprMessagingSenderContext.java
│   │                                   └── DefaultDaprMessagingObservationConvention.java
│   ├── dapr-spring-workflows/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── workflows/
│   │                               └── config/
│   │                                   ├── DaprWorkflowsConfiguration.java
│   │                                   ├── EnableDaprWorkflows.java
│   │                                   └── annotations/
│   │                                       ├── ActivityMetadata.java
│   │                                       └── WorkflowMetadata.java
│   ├── pom.xml
│   └── spotbugs-exclude.xml
├── docs/
│   ├── allclasses-index.html
│   ├── allpackages-index.html
│   ├── constant-values.html
│   ├── css/
│   │   ├── maven-base.css
│   │   ├── maven-theme.css
│   │   ├── print.css
│   │   └── site.css
│   ├── dapr-sdk-springboot/
│   │   └── css/
│   │       ├── maven-base.css
│   │       ├── maven-theme.css
│   │       ├── print.css
│   │       └── site.css
│   ├── dapr-sdk-workflows/
│   │   ├── allclasses-index.html
│   │   ├── allpackages-index.html
│   │   ├── css/
│   │   │   ├── maven-base.css
│   │   │   ├── maven-theme.css
│   │   │   ├── print.css
│   │   │   └── site.css
│   │   ├── element-list
│   │   ├── help-doc.html
│   │   ├── index-all.html
│   │   ├── index.html
│   │   ├── io/
│   │   │   └── dapr/
│   │   │       └── workflows/
│   │   │           ├── Workflow.html
│   │   │           ├── WorkflowContext.html
│   │   │           ├── WorkflowStub.html
│   │   │           ├── class-use/
│   │   │           │   ├── Workflow.html
│   │   │           │   ├── WorkflowContext.html
│   │   │           │   └── WorkflowStub.html
│   │   │           ├── client/
│   │   │           │   ├── DaprWorkflowClient.html
│   │   │           │   ├── WorkflowFailureDetails.html
│   │   │           │   ├── WorkflowInstanceStatus.html
│   │   │           │   ├── class-use/
│   │   │           │   │   ├── DaprWorkflowClient.html
│   │   │           │   │   ├── WorkflowFailureDetails.html
│   │   │           │   │   └── WorkflowInstanceStatus.html
│   │   │           │   ├── package-summary.html
│   │   │           │   ├── package-tree.html
│   │   │           │   └── package-use.html
│   │   │           ├── internal/
│   │   │           │   ├── ApiTokenClientInterceptor.html
│   │   │           │   ├── class-use/
│   │   │           │   │   └── ApiTokenClientInterceptor.html
│   │   │           │   ├── package-summary.html
│   │   │           │   ├── package-tree.html
│   │   │           │   └── package-use.html
│   │   │           ├── package-summary.html
│   │   │           ├── package-tree.html
│   │   │           ├── package-use.html
│   │   │           └── runtime/
│   │   │               ├── WorkflowRuntime.html
│   │   │               ├── WorkflowRuntimeBuilder.html
│   │   │               ├── class-use/
│   │   │               │   ├── WorkflowRuntime.html
│   │   │               │   └── WorkflowRuntimeBuilder.html
│   │   │               ├── package-summary.html
│   │   │               ├── package-tree.html
│   │   │               └── package-use.html
│   │   ├── jquery-ui.overrides.css
│   │   ├── legal/
│   │   │   ├── ADDITIONAL_LICENSE_INFO
│   │   │   ├── ASSEMBLY_EXCEPTION
│   │   │   ├── LICENSE
│   │   │   ├── jquery.md
│   │   │   └── jqueryUI.md
│   │   ├── member-search-index.js
│   │   ├── module-search-index.js
│   │   ├── overview-summary.html
│   │   ├── overview-tree.html
│   │   ├── package-search-index.js
│   │   ├── project-reports.html
│   │   ├── script.js
│   │   ├── search.js
│   │   ├── stylesheet.css
│   │   ├── tag-search-index.js
│   │   └── type-search-index.js
│   ├── deprecated-list.html
│   ├── element-list
│   ├── help-doc.html
│   ├── index-all.html
│   ├── index.html
│   ├── io/
│   │   └── dapr/
│   │       ├── Rule.html
│   │       ├── Topic.html
│   │       ├── actors/
│   │       │   ├── ActorId.html
│   │       │   ├── ActorMethod.html
│   │       │   ├── ActorTrace.html
│   │       │   ├── ActorType.html
│   │       │   ├── ActorUtils.html
│   │       │   ├── class-use/
│   │       │   │   ├── ActorId.html
│   │       │   │   ├── ActorMethod.html
│   │       │   │   ├── ActorTrace.html
│   │       │   │   ├── ActorType.html
│   │       │   │   └── ActorUtils.html
│   │       │   ├── client/
│   │       │   │   ├── ActorClient.html
│   │       │   │   ├── ActorProxy.html
│   │       │   │   ├── ActorProxyBuilder.html
│   │       │   │   ├── class-use/
│   │       │   │   │   ├── ActorClient.html
│   │       │   │   │   ├── ActorProxy.html
│   │       │   │   │   └── ActorProxyBuilder.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   ├── package-use.html
│   │       │   └── runtime/
│   │       │       ├── AbstractActor.html
│   │       │       ├── ActorFactory.html
│   │       │       ├── ActorMethodContext.html
│   │       │       ├── ActorObjectSerializer.html
│   │       │       ├── ActorRuntime.html
│   │       │       ├── ActorRuntimeConfig.html
│   │       │       ├── ActorRuntimeContext.html
│   │       │       ├── ActorStateChange.html
│   │       │       ├── ActorStateChangeKind.html
│   │       │       ├── ActorStateManager.html
│   │       │       ├── ActorTypeConfig.html
│   │       │       ├── Remindable.html
│   │       │       ├── class-use/
│   │       │       │   ├── AbstractActor.html
│   │       │       │   ├── ActorFactory.html
│   │       │       │   ├── ActorMethodContext.html
│   │       │       │   ├── ActorObjectSerializer.html
│   │       │       │   ├── ActorRuntime.html
│   │       │       │   ├── ActorRuntimeConfig.html
│   │       │       │   ├── ActorRuntimeContext.html
│   │       │       │   ├── ActorStateChange.html
│   │       │       │   ├── ActorStateChangeKind.html
│   │       │       │   ├── ActorStateManager.html
│   │       │       │   ├── ActorTypeConfig.html
│   │       │       │   └── Remindable.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── class-use/
│   │       │   ├── Rule.html
│   │       │   └── Topic.html
│   │       ├── client/
│   │       │   ├── DaprClient.html
│   │       │   ├── DaprClientBuilder.html
│   │       │   ├── DaprClientImpl.html
│   │       │   ├── DaprHttp.HttpMethods.html
│   │       │   ├── DaprHttp.Response.html
│   │       │   ├── DaprHttp.html
│   │       │   ├── DaprHttpBuilder.html
│   │       │   ├── DaprPreviewClient.html
│   │       │   ├── Headers.html
│   │       │   ├── ObjectSerializer.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprClient.html
│   │       │   │   ├── DaprClientBuilder.html
│   │       │   │   ├── DaprClientImpl.html
│   │       │   │   ├── DaprHttp.HttpMethods.html
│   │       │   │   ├── DaprHttp.Response.html
│   │       │   │   ├── DaprHttp.html
│   │       │   │   ├── DaprHttpBuilder.html
│   │       │   │   ├── DaprPreviewClient.html
│   │       │   │   ├── Headers.html
│   │       │   │   └── ObjectSerializer.html
│   │       │   ├── domain/
│   │       │   │   ├── ActorMetadata.html
│   │       │   │   ├── AppConnectionPropertiesHealthMetadata.html
│   │       │   │   ├── AppConnectionPropertiesMetadata.html
│   │       │   │   ├── BulkPublishEntry.html
│   │       │   │   ├── BulkPublishRequest.html
│   │       │   │   ├── BulkPublishResponse.html
│   │       │   │   ├── BulkPublishResponseFailedEntry.html
│   │       │   │   ├── BulkSubscribeAppResponse.html
│   │       │   │   ├── BulkSubscribeAppResponseEntry.html
│   │       │   │   ├── BulkSubscribeAppResponseStatus.html
│   │       │   │   ├── BulkSubscribeMessage.html
│   │       │   │   ├── BulkSubscribeMessageEntry.html
│   │       │   │   ├── CloudEvent.html
│   │       │   │   ├── ComponentMetadata.html
│   │       │   │   ├── ConfigurationItem.html
│   │       │   │   ├── DaprMetadata.html
│   │       │   │   ├── DeleteStateRequest.html
│   │       │   │   ├── ExecuteStateTransactionRequest.html
│   │       │   │   ├── GetBulkSecretRequest.html
│   │       │   │   ├── GetBulkStateRequest.html
│   │       │   │   ├── GetConfigurationRequest.html
│   │       │   │   ├── GetSecretRequest.html
│   │       │   │   ├── GetStateRequest.html
│   │       │   │   ├── HttpEndpointMetadata.html
│   │       │   │   ├── HttpExtension.html
│   │       │   │   ├── InvokeBindingRequest.html
│   │       │   │   ├── InvokeMethodRequest.html
│   │       │   │   ├── LockRequest.html
│   │       │   │   ├── Metadata.html
│   │       │   │   ├── PublishEventRequest.html
│   │       │   │   ├── QueryStateItem.html
│   │       │   │   ├── QueryStateRequest.html
│   │       │   │   ├── QueryStateResponse.html
│   │       │   │   ├── RuleMetadata.html
│   │       │   │   ├── SaveStateRequest.html
│   │       │   │   ├── State.html
│   │       │   │   ├── StateOptions.Concurrency.html
│   │       │   │   ├── StateOptions.Consistency.html
│   │       │   │   ├── StateOptions.StateOptionDurationDeserializer.html
│   │       │   │   ├── StateOptions.StateOptionDurationSerializer.html
│   │       │   │   ├── StateOptions.html
│   │       │   │   ├── SubscribeConfigurationRequest.html
│   │       │   │   ├── SubscribeConfigurationResponse.html
│   │       │   │   ├── SubscriptionMetadata.html
│   │       │   │   ├── TransactionalStateOperation.OperationType.html
│   │       │   │   ├── TransactionalStateOperation.html
│   │       │   │   ├── TransactionalStateRequest.html
│   │       │   │   ├── UnlockRequest.html
│   │       │   │   ├── UnlockResponseStatus.html
│   │       │   │   ├── UnsubscribeConfigurationRequest.html
│   │       │   │   ├── UnsubscribeConfigurationResponse.html
│   │       │   │   ├── class-use/
│   │       │   │   │   ├── ActorMetadata.html
│   │       │   │   │   ├── AppConnectionPropertiesHealthMetadata.html
│   │       │   │   │   ├── AppConnectionPropertiesMetadata.html
│   │       │   │   │   ├── BulkPublishEntry.html
│   │       │   │   │   ├── BulkPublishRequest.html
│   │       │   │   │   ├── BulkPublishResponse.html
│   │       │   │   │   ├── BulkPublishResponseFailedEntry.html
│   │       │   │   │   ├── BulkSubscribeAppResponse.html
│   │       │   │   │   ├── BulkSubscribeAppResponseEntry.html
│   │       │   │   │   ├── BulkSubscribeAppResponseStatus.html
│   │       │   │   │   ├── BulkSubscribeMessage.html
│   │       │   │   │   ├── BulkSubscribeMessageEntry.html
│   │       │   │   │   ├── CloudEvent.html
│   │       │   │   │   ├── ComponentMetadata.html
│   │       │   │   │   ├── ConfigurationItem.html
│   │       │   │   │   ├── DaprMetadata.html
│   │       │   │   │   ├── DeleteStateRequest.html
│   │       │   │   │   ├── ExecuteStateTransactionRequest.html
│   │       │   │   │   ├── GetBulkSecretRequest.html
│   │       │   │   │   ├── GetBulkStateRequest.html
│   │       │   │   │   ├── GetConfigurationRequest.html
│   │       │   │   │   ├── GetSecretRequest.html
│   │       │   │   │   ├── GetStateRequest.html
│   │       │   │   │   ├── HttpEndpointMetadata.html
│   │       │   │   │   ├── HttpExtension.html
│   │       │   │   │   ├── InvokeBindingRequest.html
│   │       │   │   │   ├── InvokeMethodRequest.html
│   │       │   │   │   ├── LockRequest.html
│   │       │   │   │   ├── Metadata.html
│   │       │   │   │   ├── PublishEventRequest.html
│   │       │   │   │   ├── QueryStateItem.html
│   │       │   │   │   ├── QueryStateRequest.html
│   │       │   │   │   ├── QueryStateResponse.html
│   │       │   │   │   ├── RuleMetadata.html
│   │       │   │   │   ├── SaveStateRequest.html
│   │       │   │   │   ├── State.html
│   │       │   │   │   ├── StateOptions.Concurrency.html
│   │       │   │   │   ├── StateOptions.Consistency.html
│   │       │   │   │   ├── StateOptions.StateOptionDurationDeserializer.html
│   │       │   │   │   ├── StateOptions.StateOptionDurationSerializer.html
│   │       │   │   │   ├── StateOptions.html
│   │       │   │   │   ├── SubscribeConfigurationRequest.html
│   │       │   │   │   ├── SubscribeConfigurationResponse.html
│   │       │   │   │   ├── SubscriptionMetadata.html
│   │       │   │   │   ├── TransactionalStateOperation.OperationType.html
│   │       │   │   │   ├── TransactionalStateOperation.html
│   │       │   │   │   ├── TransactionalStateRequest.html
│   │       │   │   │   ├── UnlockRequest.html
│   │       │   │   │   ├── UnlockResponseStatus.html
│   │       │   │   │   ├── UnsubscribeConfigurationRequest.html
│   │       │   │   │   └── UnsubscribeConfigurationResponse.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   ├── package-use.html
│   │       │   │   └── query/
│   │       │   │       ├── Pagination.html
│   │       │   │       ├── Query.html
│   │       │   │       ├── Sorting.Order.html
│   │       │   │       ├── Sorting.html
│   │       │   │       ├── class-use/
│   │       │   │       │   ├── Pagination.html
│   │       │   │       │   ├── Query.html
│   │       │   │       │   ├── Sorting.Order.html
│   │       │   │       │   └── Sorting.html
│   │       │   │       ├── filters/
│   │       │   │       │   ├── AndFilter.html
│   │       │   │       │   ├── EqFilter.html
│   │       │   │       │   ├── Filter.html
│   │       │   │       │   ├── InFilter.html
│   │       │   │       │   ├── OrFilter.html
│   │       │   │       │   ├── class-use/
│   │       │   │       │   │   ├── AndFilter.html
│   │       │   │       │   │   ├── EqFilter.html
│   │       │   │       │   │   ├── Filter.html
│   │       │   │       │   │   ├── InFilter.html
│   │       │   │       │   │   └── OrFilter.html
│   │       │   │       │   ├── package-summary.html
│   │       │   │       │   ├── package-tree.html
│   │       │   │       │   └── package-use.html
│   │       │   │       ├── package-summary.html
│   │       │   │       ├── package-tree.html
│   │       │   │       └── package-use.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   ├── package-use.html
│   │       │   └── resiliency/
│   │       │       ├── ResiliencyOptions.html
│   │       │       ├── class-use/
│   │       │       │   └── ResiliencyOptions.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── config/
│   │       │   ├── BooleanProperty.html
│   │       │   ├── GenericProperty.html
│   │       │   ├── IntegerProperty.html
│   │       │   ├── MillisecondsDurationProperty.html
│   │       │   ├── Properties.html
│   │       │   ├── Property.html
│   │       │   ├── StringProperty.html
│   │       │   ├── class-use/
│   │       │   │   ├── BooleanProperty.html
│   │       │   │   ├── GenericProperty.html
│   │       │   │   ├── IntegerProperty.html
│   │       │   │   ├── MillisecondsDurationProperty.html
│   │       │   │   ├── Properties.html
│   │       │   │   ├── Property.html
│   │       │   │   └── StringProperty.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── exceptions/
│   │       │   ├── DaprError.html
│   │       │   ├── DaprErrorDetails.ErrorDetailType.html
│   │       │   ├── DaprErrorDetails.html
│   │       │   ├── DaprException.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprError.html
│   │       │   │   ├── DaprErrorDetails.ErrorDetailType.html
│   │       │   │   ├── DaprErrorDetails.html
│   │       │   │   └── DaprException.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── internal/
│   │       │   ├── grpc/
│   │       │   │   ├── DaprClientGrpcInterceptors.html
│   │       │   │   ├── class-use/
│   │       │   │   │   └── DaprClientGrpcInterceptors.html
│   │       │   │   ├── interceptors/
│   │       │   │   │   ├── DaprApiTokenInterceptor.html
│   │       │   │   │   ├── DaprAppIdInterceptor.html
│   │       │   │   │   ├── DaprTimeoutInterceptor.html
│   │       │   │   │   ├── DaprTracingInterceptor.html
│   │       │   │   │   ├── class-use/
│   │       │   │   │   │   ├── DaprApiTokenInterceptor.html
│   │       │   │   │   │   ├── DaprAppIdInterceptor.html
│   │       │   │   │   │   ├── DaprTimeoutInterceptor.html
│   │       │   │   │   │   └── DaprTracingInterceptor.html
│   │       │   │   │   ├── package-summary.html
│   │       │   │   │   ├── package-tree.html
│   │       │   │   │   └── package-use.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   ├── opencensus/
│   │       │   │   ├── GrpcHelper.html
│   │       │   │   ├── class-use/
│   │       │   │   │   └── GrpcHelper.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   └── resiliency/
│   │       │       ├── RetryPolicy.html
│   │       │       ├── TimeoutPolicy.html
│   │       │       ├── class-use/
│   │       │       │   ├── RetryPolicy.html
│   │       │       │   └── TimeoutPolicy.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── package-summary.html
│   │       ├── package-tree.html
│   │       ├── package-use.html
│   │       ├── serializer/
│   │       │   ├── DaprObjectSerializer.html
│   │       │   ├── DefaultObjectSerializer.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprObjectSerializer.html
│   │       │   │   └── DefaultObjectSerializer.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── utils/
│   │       │   ├── DefaultContentTypeConverter.html
│   │       │   ├── DurationUtils.html
│   │       │   ├── NetworkUtils.html
│   │       │   ├── TypeRef.html
│   │       │   ├── Version.html
│   │       │   ├── class-use/
│   │       │   │   ├── DefaultContentTypeConverter.html
│   │       │   │   ├── DurationUtils.html
│   │       │   │   ├── NetworkUtils.html
│   │       │   │   ├── TypeRef.html
│   │       │   │   └── Version.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── v1/
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaBlockingStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaFutureStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaImplBase.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AsyncService.html
│   │       │   ├── AppCallbackAlphaGrpc.html
│   │       │   ├── AppCallbackGrpc.AppCallbackBlockingStub.html
│   │       │   ├── AppCallbackGrpc.AppCallbackFutureStub.html
│   │       │   ├── AppCallbackGrpc.AppCallbackImplBase.html
│   │       │   ├── AppCallbackGrpc.AppCallbackStub.html
│   │       │   ├── AppCallbackGrpc.AsyncService.html
│   │       │   ├── AppCallbackGrpc.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckBlockingStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckFutureStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckImplBase.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AsyncService.html
│   │       │   ├── AppCallbackHealthCheckGrpc.html
│   │       │   ├── CommonProtos.ConfigurationItem.Builder.html
│   │       │   ├── CommonProtos.ConfigurationItem.html
│   │       │   ├── CommonProtos.ConfigurationItemOrBuilder.html
│   │       │   ├── CommonProtos.Etag.Builder.html
│   │       │   ├── CommonProtos.Etag.html
│   │       │   ├── CommonProtos.EtagOrBuilder.html
│   │       │   ├── CommonProtos.HTTPExtension.Builder.html
│   │       │   ├── CommonProtos.HTTPExtension.Verb.html
│   │       │   ├── CommonProtos.HTTPExtension.html
│   │       │   ├── CommonProtos.HTTPExtensionOrBuilder.html
│   │       │   ├── CommonProtos.InvokeRequest.Builder.html
│   │       │   ├── CommonProtos.InvokeRequest.html
│   │       │   ├── CommonProtos.InvokeRequestOrBuilder.html
│   │       │   ├── CommonProtos.InvokeResponse.Builder.html
│   │       │   ├── CommonProtos.InvokeResponse.html
│   │       │   ├── CommonProtos.InvokeResponseOrBuilder.html
│   │       │   ├── CommonProtos.StateItem.Builder.html
│   │       │   ├── CommonProtos.StateItem.html
│   │       │   ├── CommonProtos.StateItemOrBuilder.html
│   │       │   ├── CommonProtos.StateOptions.Builder.html
│   │       │   ├── CommonProtos.StateOptions.StateConcurrency.html
│   │       │   ├── CommonProtos.StateOptions.StateConsistency.html
│   │       │   ├── CommonProtos.StateOptions.html
│   │       │   ├── CommonProtos.StateOptionsOrBuilder.html
│   │       │   ├── CommonProtos.StreamPayload.Builder.html
│   │       │   ├── CommonProtos.StreamPayload.html
│   │       │   ├── CommonProtos.StreamPayloadOrBuilder.html
│   │       │   ├── CommonProtos.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.BindingEventConcurrency.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfigOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponse.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.EventCase.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntryOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntryOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.TopicEventResponseStatus.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutes.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutes.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutesOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRule.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRule.html
│   │       │   ├── DaprAppCallbackProtos.TopicRuleOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscription.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscription.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscriptionOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.html
│   │       │   ├── DaprGrpc.AsyncService.html
│   │       │   ├── DaprGrpc.DaprBlockingStub.html
│   │       │   ├── DaprGrpc.DaprFutureStub.html
│   │       │   ├── DaprGrpc.DaprImplBase.html
│   │       │   ├── DaprGrpc.DaprStub.html
│   │       │   ├── DaprGrpc.html
│   │       │   ├── DaprProtos.ShutdownRequest.Builder.html
│   │       │   ├── DaprProtos.ShutdownRequest.html
│   │       │   ├── DaprProtos.ShutdownRequestOrBuilder.html
│   │       │   ├── DaprProtos.html
│   │       │   ├── class-use/
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaBlockingStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaFutureStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaImplBase.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackAlphaGrpc.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackBlockingStub.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackFutureStub.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackImplBase.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackStub.html
│   │       │   │   ├── AppCallbackGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackGrpc.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckBlockingStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckFutureStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckImplBase.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.html
│   │       │   │   ├── CommonProtos.ConfigurationItem.Builder.html
│   │       │   │   ├── CommonProtos.ConfigurationItem.html
│   │       │   │   ├── CommonProtos.ConfigurationItemOrBuilder.html
│   │       │   │   ├── CommonProtos.Etag.Builder.html
│   │       │   │   ├── CommonProtos.Etag.html
│   │       │   │   ├── CommonProtos.EtagOrBuilder.html
│   │       │   │   ├── CommonProtos.HTTPExtension.Builder.html
│   │       │   │   ├── CommonProtos.HTTPExtension.Verb.html
│   │       │   │   ├── CommonProtos.HTTPExtension.html
│   │       │   │   ├── CommonProtos.HTTPExtensionOrBuilder.html
│   │       │   │   ├── CommonProtos.InvokeRequest.Builder.html
│   │       │   │   ├── CommonProtos.InvokeRequest.html
│   │       │   │   ├── CommonProtos.InvokeRequestOrBuilder.html
│   │       │   │   ├── CommonProtos.InvokeResponse.Builder.html
│   │       │   │   ├── CommonProtos.InvokeResponse.html
│   │       │   │   ├── CommonProtos.InvokeResponseOrBuilder.html
│   │       │   │   ├── CommonProtos.StateItem.Builder.html
│   │       │   │   ├── CommonProtos.StateItem.html
│   │       │   │   ├── CommonProtos.StateItemOrBuilder.html
│   │       │   │   ├── CommonProtos.StateOptions.Builder.html
│   │       │   │   ├── CommonProtos.StateOptions.StateConcurrency.html
│   │       │   │   ├── CommonProtos.StateOptions.StateConsistency.html
│   │       │   │   ├── CommonProtos.StateOptions.html
│   │       │   │   ├── CommonProtos.StateOptionsOrBuilder.html
│   │       │   │   ├── CommonProtos.StreamPayload.Builder.html
│   │       │   │   ├── CommonProtos.StreamPayload.html
│   │       │   │   ├── CommonProtos.StreamPayloadOrBuilder.html
│   │       │   │   ├── CommonProtos.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.BindingEventConcurrency.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfigOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.EventCase.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntryOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntryOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.TopicEventResponseStatus.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutes.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutes.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutesOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRule.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRule.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRuleOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscription.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscription.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscriptionOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.html
│   │       │   │   ├── DaprGrpc.AsyncService.html
│   │       │   │   ├── DaprGrpc.DaprBlockingStub.html
│   │       │   │   ├── DaprGrpc.DaprFutureStub.html
│   │       │   │   ├── DaprGrpc.DaprImplBase.html
│   │       │   │   ├── DaprGrpc.DaprStub.html
│   │       │   │   ├── DaprGrpc.html
│   │       │   │   ├── DaprProtos.ShutdownRequest.Builder.html
│   │       │   │   ├── DaprProtos.ShutdownRequest.html
│   │       │   │   ├── DaprProtos.ShutdownRequestOrBuilder.html
│   │       │   │   └── DaprProtos.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       └── workflows/
│   │           ├── Workflow.html
│   │           ├── WorkflowContext.html
│   │           ├── WorkflowStub.html
│   │           ├── class-use/
│   │           │   ├── Workflow.html
│   │           │   ├── WorkflowContext.html
│   │           │   └── WorkflowStub.html
│   │           ├── client/
│   │           │   ├── DaprWorkflowClient.html
│   │           │   ├── WorkflowFailureDetails.html
│   │           │   ├── WorkflowInstanceStatus.html
│   │           │   ├── class-use/
│   │           │   │   ├── DaprWorkflowClient.html
│   │           │   │   ├── WorkflowFailureDetails.html
│   │           │   │   └── WorkflowInstanceStatus.html
│   │           │   ├── package-summary.html
│   │           │   ├── package-tree.html
│   │           │   └── package-use.html
│   │           ├── internal/
│   │           │   ├── ApiTokenClientInterceptor.html
│   │           │   ├── class-use/
│   │           │   │   └── ApiTokenClientInterceptor.html
│   │           │   ├── package-summary.html
│   │           │   ├── package-tree.html
│   │           │   └── package-use.html
│   │           ├── package-summary.html
│   │           ├── package-tree.html
│   │           ├── package-use.html
│   │           └── runtime/
│   │               ├── WorkflowRuntime.html
│   │               ├── WorkflowRuntimeBuilder.html
│   │               ├── class-use/
│   │               │   ├── WorkflowRuntime.html
│   │               │   └── WorkflowRuntimeBuilder.html
│   │               ├── package-summary.html
│   │               ├── package-tree.html
│   │               └── package-use.html
│   ├── jquery-ui.overrides.css
│   ├── legal/
│   │   ├── ADDITIONAL_LICENSE_INFO
│   │   ├── ASSEMBLY_EXCEPTION
│   │   ├── LICENSE
│   │   ├── jquery.md
│   │   └── jqueryUI.md
│   ├── member-search-index.js
│   ├── module-search-index.js
│   ├── overview-summary.html
│   ├── overview-tree.html
│   ├── package-search-index.js
│   ├── project-reports.html
│   ├── script.js
│   ├── search.js
│   ├── serialized-form.html
│   ├── stylesheet.css
│   ├── tag-search-index.js
│   └── type-search-index.js
├── durabletask-client/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── durabletask/
│       │                   ├── CompositeTaskFailedException.java
│       │                   ├── DataConverter.java
│       │                   ├── DurableTaskClient.java
│       │                   ├── DurableTaskGrpcClient.java
│       │                   ├── DurableTaskGrpcClientBuilder.java
│       │                   ├── DurableTaskGrpcWorker.java
│       │                   ├── DurableTaskGrpcWorkerBuilder.java
│       │                   ├── FailureDetails.java
│       │                   ├── Helpers.java
│       │                   ├── JacksonDataConverter.java
│       │                   ├── NewOrchestrationInstanceOptions.java
│       │                   ├── NonDeterministicOrchestratorException.java
│       │                   ├── OrchestrationMetadata.java
│       │                   ├── OrchestrationRunner.java
│       │                   ├── OrchestrationRuntimeStatus.java
│       │                   ├── OrchestratorFunction.java
│       │                   ├── PurgeInstanceCriteria.java
│       │                   ├── PurgeResult.java
│       │                   ├── RetryContext.java
│       │                   ├── RetryHandler.java
│       │                   ├── RetryPolicy.java
│       │                   ├── Task.java
│       │                   ├── TaskActivity.java
│       │                   ├── TaskActivityContext.java
│       │                   ├── TaskActivityExecutor.java
│       │                   ├── TaskActivityFactory.java
│       │                   ├── TaskCanceledException.java
│       │                   ├── TaskFailedException.java
│       │                   ├── TaskOptions.java
│       │                   ├── TaskOrchestration.java
│       │                   ├── TaskOrchestrationContext.java
│       │                   ├── TaskOrchestrationExecutor.java
│       │                   ├── TaskOrchestratorResult.java
│       │                   ├── interruption/
│       │                   │   ├── ContinueAsNewInterruption.java
│       │                   │   └── OrchestratorBlockedException.java
│       │                   ├── orchestration/
│       │                   │   ├── TaskOrchestrationFactories.java
│       │                   │   ├── TaskOrchestrationFactory.java
│       │                   │   └── exception/
│       │                   │       └── VersionNotRegisteredException.java
│       │                   ├── runner/
│       │                   │   ├── ActivityRunner.java
│       │                   │   ├── DurableRunner.java
│       │                   │   └── OrchestratorRunner.java
│       │                   └── util/
│       │                       └── UuidGenerator.java
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── durabletask/
│                           ├── DurableTaskClientIT.java
│                           ├── DurableTaskGrpcClientTlsTest.java
│                           ├── DurableTaskGrpcWorkerReconnectTest.java
│                           ├── DurableTaskGrpcWorkerShutdownTest.java
│                           ├── ErrorHandlingIT.java
│                           ├── IntegrationTestBase.java
│                           ├── SubOrchestrationCrossAppTest.java
│                           └── TaskOptionsTest.java
├── examples/
│   ├── components/
│   │   ├── actors/
│   │   │   └── redis.yaml
│   │   ├── bindings/
│   │   │   └── kafka_bindings.yaml
│   │   ├── configuration/
│   │   │   └── redis_configstore.yaml
│   │   ├── conversation/
│   │   │   └── conversation.yaml
│   │   ├── crypto/
│   │   │   ├── keys/
│   │   │   │   └── .gitkeep
│   │   │   └── localstorage.yaml
│   │   ├── lock/
│   │   │   └── redis_lockstore.yaml
│   │   ├── pubsub/
│   │   │   └── redis_messagebus.yaml
│   │   ├── secrets/
│   │   │   └── local_file.yaml
│   │   ├── state/
│   │   │   ├── mongo.yaml
│   │   │   └── redis.yaml
│   │   └── workflows/
│   │       └── redis.yaml
│   ├── pom.xml
│   ├── proto/
│   │   └── helloworld.proto
│   ├── spotbugs-exclude.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           └── examples/
│           │               ├── DaprApplication.java
│           │               ├── DaprConfig.java
│           │               ├── DaprMainApplication.java
│           │               ├── OpenTelemetryConfig.java
│           │               ├── OpenTelemetryInterceptor.java
│           │               ├── OpenTelemetryInterceptorConfig.java
│           │               ├── actors/
│           │               │   ├── DemoActor.java
│           │               │   ├── DemoActorClient.java
│           │               │   ├── DemoActorImpl.java
│           │               │   ├── DemoActorService.java
│           │               │   └── README.md
│           │               ├── baggage/
│           │               │   ├── BaggageClient.java
│           │               │   └── README.md
│           │               ├── bindings/
│           │               │   └── http/
│           │               │       ├── InputBindingController.java
│           │               │       ├── InputBindingExample.java
│           │               │       ├── OutputBindingExample.java
│           │               │       ├── README.md
│           │               │       └── docker-compose-single-kafka.yml
│           │               ├── configuration/
│           │               │   ├── ConfigurationClient.java
│           │               │   └── README.md
│           │               ├── conversation/
│           │               │   ├── AssistantMessageDemo.java
│           │               │   ├── README.md
│           │               │   ├── ToolsCallDemo.java
│           │               │   ├── UsageUtils.java
│           │               │   └── UserMessageDemo.java
│           │               ├── crypto/
│           │               │   ├── CryptoExample.java
│           │               │   ├── README.md
│           │               │   └── StreamingCryptoExample.java
│           │               ├── exception/
│           │               │   ├── Client.java
│           │               │   └── README.md
│           │               ├── invoke/
│           │               │   ├── grpc/
│           │               │   │   ├── HelloWorldClient.java
│           │               │   │   ├── HelloWorldService.java
│           │               │   │   └── README.md
│           │               │   └── http/
│           │               │       ├── DemoService.java
│           │               │       ├── DemoServiceController.java
│           │               │       ├── InvokeClient.java
│           │               │       └── README.md
│           │               ├── jobs/
│           │               │   ├── DemoJobsClient.java
│           │               │   ├── DemoJobsSpringApplication.java
│           │               │   ├── JobsController.java
│           │               │   └── README.md
│           │               ├── lock/
│           │               │   ├── DistributedLockGrpcClient.java
│           │               │   └── README.md
│           │               ├── pubsub/
│           │               │   ├── BulkPublisher.java
│           │               │   ├── CloudEventBulkPublisher.java
│           │               │   ├── CloudEventPublisher.java
│           │               │   ├── Publisher.java
│           │               │   ├── PublisherWithTracing.java
│           │               │   ├── README.md
│           │               │   ├── grpc/
│           │               │   │   ├── Subscriber.java
│           │               │   │   └── SubscriberGrpcService.java
│           │               │   ├── http/
│           │               │   │   ├── Subscriber.java
│           │               │   │   └── SubscriberController.java
│           │               │   └── stream/
│           │               │       ├── README.md
│           │               │       ├── Subscriber.java
│           │               │       └── SubscriberCloudEvent.java
│           │               ├── querystate/
│           │               │   ├── Listing.java
│           │               │   ├── QuerySavedState.java
│           │               │   ├── README.md
│           │               │   └── docker-compose-single-mongo.yml
│           │               ├── secrets/
│           │               │   ├── README.md
│           │               │   ├── SecretClient.java
│           │               │   └── config.yaml
│           │               ├── state/
│           │               │   ├── README.md
│           │               │   ├── StateClient.java
│           │               │   └── docker-compose-single-mongo.yml
│           │               ├── tracing/
│           │               │   ├── InvokeClient.java
│           │               │   ├── README.md
│           │               │   ├── TracingDemoMiddleServiceController.java
│           │               │   ├── TracingDemoService.java
│           │               │   ├── TracingDemoServiceController.java
│           │               │   └── Validation.java
│           │               ├── unittesting/
│           │               │   ├── DaprExampleTest.java
│           │               │   ├── DaprWorkflowExampleTest.java
│           │               │   └── README.md
│           │               └── workflows/
│           │                   ├── README.md
│           │                   ├── chain/
│           │                   │   ├── DemoChainClient.java
│           │                   │   ├── DemoChainWorker.java
│           │                   │   ├── DemoChainWorkflow.java
│           │                   │   └── ToUpperCaseActivity.java
│           │                   ├── childworkflow/
│           │                   │   ├── DemoChildWorkerflowClient.java
│           │                   │   ├── DemoChildWorkflow.java
│           │                   │   ├── DemoChildWorkflowWorker.java
│           │                   │   ├── DemoWorkflow.java
│           │                   │   └── ReverseActivity.java
│           │                   ├── compensation/
│           │                   │   ├── BookCarActivity.java
│           │                   │   ├── BookFlightActivity.java
│           │                   │   ├── BookHotelActivity.java
│           │                   │   ├── BookTripClient.java
│           │                   │   ├── BookTripWorker.java
│           │                   │   ├── BookTripWorkflow.java
│           │                   │   ├── CancelCarActivity.java
│           │                   │   ├── CancelFlightActivity.java
│           │                   │   └── CancelHotelActivity.java
│           │                   ├── continueasnew/
│           │                   │   ├── CleanUpActivity.java
│           │                   │   ├── DemoContinueAsNewClient.java
│           │                   │   ├── DemoContinueAsNewWorker.java
│           │                   │   └── DemoContinueAsNewWorkflow.java
│           │                   ├── externalevent/
│           │                   │   ├── ApproveActivity.java
│           │                   │   ├── DemoExternalEventClient.java
│           │                   │   ├── DemoExternalEventWorker.java
│           │                   │   ├── DemoExternalEventWorkflow.java
│           │                   │   └── DenyActivity.java
│           │                   ├── faninout/
│           │                   │   ├── CountWordsActivity.java
│           │                   │   ├── DemoFanInOutClient.java
│           │                   │   ├── DemoFanInOutWorker.java
│           │                   │   └── DemoFanInOutWorkflow.java
│           │                   ├── multiapp/
│           │                   │   ├── App2TransformActivity.java
│           │                   │   ├── App2Worker.java
│           │                   │   ├── App3FinalizeActivity.java
│           │                   │   ├── App3Worker.java
│           │                   │   ├── MultiAppWorker.java
│           │                   │   ├── MultiAppWorkflow.java
│           │                   │   └── MultiAppWorkflowClient.java
│           │                   ├── suspendresume/
│           │                   │   ├── DemoSuspendResumeClient.java
│           │                   │   └── DemoSuspendResumeWorker.java
│           │                   └── utils/
│           │                       ├── PropertyUtils.java
│           │                       └── RetryUtils.java
│           └── resources/
│               └── logback.xml
├── mise.toml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── sdk/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── dapr/
│       │   │           ├── Rule.java
│       │   │           ├── Topic.java
│       │   │           ├── client/
│       │   │           │   ├── AbstractDaprClient.java
│       │   │           │   ├── DaprClient.java
│       │   │           │   ├── DaprClientBuilder.java
│       │   │           │   ├── DaprClientImpl.java
│       │   │           │   ├── DaprHttp.java
│       │   │           │   ├── DaprHttpBuilder.java
│       │   │           │   ├── DaprPreviewClient.java
│       │   │           │   ├── GrpcChannelFacade.java
│       │   │           │   ├── Headers.java
│       │   │           │   ├── ObjectSerializer.java
│       │   │           │   ├── ProtobufValueHelper.java
│       │   │           │   ├── Subscription.java
│       │   │           │   ├── SubscriptionListener.java
│       │   │           │   ├── domain/
│       │   │           │   │   ├── ActorMetadata.java
│       │   │           │   │   ├── AppConnectionPropertiesHealthMetadata.java
│       │   │           │   │   ├── AppConnectionPropertiesMetadata.java
│       │   │           │   │   ├── AssistantMessage.java
│       │   │           │   │   ├── BulkPublishEntry.java
│       │   │           │   │   ├── BulkPublishRequest.java
│       │   │           │   │   ├── BulkPublishResponse.java
│       │   │           │   │   ├── BulkPublishResponseFailedEntry.java
│       │   │           │   │   ├── BulkSubscribeAppResponse.java
│       │   │           │   │   ├── BulkSubscribeAppResponseEntry.java
│       │   │           │   │   ├── BulkSubscribeAppResponseStatus.java
│       │   │           │   │   ├── BulkSubscribeMessage.java
│       │   │           │   │   ├── BulkSubscribeMessageEntry.java
│       │   │           │   │   ├── CloudEvent.java
│       │   │           │   │   ├── ComponentMetadata.java
│       │   │           │   │   ├── ConfigurationItem.java
│       │   │           │   │   ├── ConstantFailurePolicy.java
│       │   │           │   │   ├── ConversationInput.java
│       │   │           │   │   ├── ConversationInputAlpha2.java
│       │   │           │   │   ├── ConversationMessage.java
│       │   │           │   │   ├── ConversationMessageContent.java
│       │   │           │   │   ├── ConversationMessageRole.java
│       │   │           │   │   ├── ConversationOutput.java
│       │   │           │   │   ├── ConversationRequest.java
│       │   │           │   │   ├── ConversationRequestAlpha2.java
│       │   │           │   │   ├── ConversationResponse.java
│       │   │           │   │   ├── ConversationResponseAlpha2.java
│       │   │           │   │   ├── ConversationResultAlpha2.java
│       │   │           │   │   ├── ConversationResultChoices.java
│       │   │           │   │   ├── ConversationResultCompletionUsage.java
│       │   │           │   │   ├── ConversationResultCompletionUsageDetails.java
│       │   │           │   │   ├── ConversationResultMessage.java
│       │   │           │   │   ├── ConversationResultPromptUsageDetails.java
│       │   │           │   │   ├── ConversationToolCalls.java
│       │   │           │   │   ├── ConversationToolCallsOfFunction.java
│       │   │           │   │   ├── ConversationTools.java
│       │   │           │   │   ├── ConversationToolsFunction.java
│       │   │           │   │   ├── DaprMetadata.java
│       │   │           │   │   ├── DecryptRequestAlpha1.java
│       │   │           │   │   ├── DeleteJobRequest.java
│       │   │           │   │   ├── DeleteStateRequest.java
│       │   │           │   │   ├── DeveloperMessage.java
│       │   │           │   │   ├── DropFailurePolicy.java
│       │   │           │   │   ├── EncryptRequestAlpha1.java
│       │   │           │   │   ├── ExecuteStateTransactionRequest.java
│       │   │           │   │   ├── FailurePolicy.java
│       │   │           │   │   ├── FailurePolicyType.java
│       │   │           │   │   ├── GetBulkSecretRequest.java
│       │   │           │   │   ├── GetBulkStateRequest.java
│       │   │           │   │   ├── GetConfigurationRequest.java
│       │   │           │   │   ├── GetJobRequest.java
│       │   │           │   │   ├── GetJobResponse.java
│       │   │           │   │   ├── GetSecretRequest.java
│       │   │           │   │   ├── GetStateRequest.java
│       │   │           │   │   ├── HttpEndpointMetadata.java
│       │   │           │   │   ├── HttpExtension.java
│       │   │           │   │   ├── InvokeBindingRequest.java
│       │   │           │   │   ├── InvokeMethodRequest.java
│       │   │           │   │   ├── JobSchedule.java
│       │   │           │   │   ├── LockRequest.java
│       │   │           │   │   ├── Metadata.java
│       │   │           │   │   ├── PublishEventRequest.java
│       │   │           │   │   ├── QueryStateItem.java
│       │   │           │   │   ├── QueryStateRequest.java
│       │   │           │   │   ├── QueryStateResponse.java
│       │   │           │   │   ├── RuleMetadata.java
│       │   │           │   │   ├── SaveStateRequest.java
│       │   │           │   │   ├── ScheduleJobRequest.java
│       │   │           │   │   ├── State.java
│       │   │           │   │   ├── StateOptions.java
│       │   │           │   │   ├── SubscribeConfigurationRequest.java
│       │   │           │   │   ├── SubscribeConfigurationResponse.java
│       │   │           │   │   ├── SubscriptionMetadata.java
│       │   │           │   │   ├── SystemMessage.java
│       │   │           │   │   ├── ToolMessage.java
│       │   │           │   │   ├── TransactionalStateOperation.java
│       │   │           │   │   ├── TransactionalStateRequest.java
│       │   │           │   │   ├── UnlockRequest.java
│       │   │           │   │   ├── UnlockResponseStatus.java
│       │   │           │   │   ├── UnsubscribeConfigurationRequest.java
│       │   │           │   │   ├── UnsubscribeConfigurationResponse.java
│       │   │           │   │   ├── UserMessage.java
│       │   │           │   │   └── query/
│       │   │           │   │       ├── Pagination.java
│       │   │           │   │       ├── Query.java
│       │   │           │   │       ├── Sorting.java
│       │   │           │   │       └── filters/
│       │   │           │   │           ├── AndFilter.java
│       │   │           │   │           ├── EqFilter.java
│       │   │           │   │           ├── Filter.java
│       │   │           │   │           ├── InFilter.java
│       │   │           │   │           └── OrFilter.java
│       │   │           │   └── resiliency/
│       │   │           │       └── ResiliencyOptions.java
│       │   │           ├── config/
│       │   │           │   ├── BooleanProperty.java
│       │   │           │   ├── GenericProperty.java
│       │   │           │   ├── IntegerProperty.java
│       │   │           │   ├── MillisecondsDurationProperty.java
│       │   │           │   ├── Properties.java
│       │   │           │   ├── Property.java
│       │   │           │   ├── SecondsDurationProperty.java
│       │   │           │   └── StringProperty.java
│       │   │           ├── exceptions/
│       │   │           │   ├── DaprError.java
│       │   │           │   ├── DaprErrorDetails.java
│       │   │           │   └── DaprException.java
│       │   │           ├── internal/
│       │   │           │   ├── exceptions/
│       │   │           │   │   └── DaprHttpException.java
│       │   │           │   ├── grpc/
│       │   │           │   │   ├── DaprClientGrpcInterceptors.java
│       │   │           │   │   └── interceptors/
│       │   │           │   │       ├── DaprApiTokenInterceptor.java
│       │   │           │   │       ├── DaprAppIdInterceptor.java
│       │   │           │   │       ├── DaprBaggageInterceptor.java
│       │   │           │   │       ├── DaprMetadataReceiverInterceptor.java
│       │   │           │   │       ├── DaprTimeoutInterceptor.java
│       │   │           │   │       └── DaprTracingInterceptor.java
│       │   │           │   ├── opencensus/
│       │   │           │   │   ├── BigendianEncoding.java
│       │   │           │   │   ├── BinaryFormatImpl.java
│       │   │           │   │   ├── GrpcHelper.java
│       │   │           │   │   ├── SpanContext.java
│       │   │           │   │   ├── SpanId.java
│       │   │           │   │   ├── TraceContextFormat.java
│       │   │           │   │   ├── TraceId.java
│       │   │           │   │   ├── TraceOptions.java
│       │   │           │   │   ├── Tracestate.java
│       │   │           │   │   └── Utils.java
│       │   │           │   ├── resiliency/
│       │   │           │   │   ├── RetryPolicy.java
│       │   │           │   │   └── TimeoutPolicy.java
│       │   │           │   └── subscription/
│       │   │           │       └── EventSubscriberStreamObserver.java
│       │   │           ├── serializer/
│       │   │           │   ├── CustomizableObjectSerializer.java
│       │   │           │   ├── DaprObjectSerializer.java
│       │   │           │   └── DefaultObjectSerializer.java
│       │   │           └── utils/
│       │   │               ├── DefaultContentTypeConverter.java
│       │   │               ├── DurationUtils.java
│       │   │               ├── FailurePolicyUtils.java
│       │   │               ├── NetworkUtils.java
│       │   │               ├── ProtobufUtils.java
│       │   │               ├── TypeRef.java
│       │   │               └── Version.java
│       │   └── resources/
│       │       └── sdk_version.properties
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           ├── client/
│           │           │   ├── CloudEventCustom.java
│           │           │   ├── CloudEventCustomTest.java
│           │           │   ├── CloudEventTest.java
│           │           │   ├── DaprClientBuilderTest.java
│           │           │   ├── DaprClientGrpcBaggageTest.java
│           │           │   ├── DaprClientGrpcTelemetryTest.java
│           │           │   ├── DaprClientGrpcTest.java
│           │           │   ├── DaprClientHttpTest.java
│           │           │   ├── DaprClientTestBuilder.java
│           │           │   ├── DaprExceptionTest.java
│           │           │   ├── DaprHttpBuilderTest.java
│           │           │   ├── DaprHttpStub.java
│           │           │   ├── DaprHttpTest.java
│           │           │   ├── DaprPreviewClientGrpcTest.java
│           │           │   ├── MockHttpResponse.java
│           │           │   ├── ProtobufValueHelperTest.java
│           │           │   └── domain/
│           │           │       ├── BulkPublishEntryTest.java
│           │           │       ├── BulkPublishRequestTest.java
│           │           │       ├── ConfigurationItemTest.java
│           │           │       ├── DecryptRequestAlpha1Test.java
│           │           │       ├── DeleteStateRequestTest.java
│           │           │       ├── EncryptRequestAlpha1Test.java
│           │           │       ├── ExecuteStateTransactionRequestTest.java
│           │           │       ├── GetBulkSecretRequestTest.java
│           │           │       ├── GetBulkStateRequestTest.java
│           │           │       ├── GetSecretRequestTest.java
│           │           │       ├── GetStateRequestTest.java
│           │           │       ├── HttpExtensionTest.java
│           │           │       ├── InvokeBindingRequestTest.java
│           │           │       ├── JobsScheduleTest.java
│           │           │       ├── PublishEventRequestTest.java
│           │           │       ├── QueryStateRequestTest.java
│           │           │       ├── SaveStateRequestTest.java
│           │           │       ├── StateTest.java
│           │           │       ├── TestData.java
│           │           │       ├── TransactionalStateRequestTest.java
│           │           │       └── query/
│           │           │           ├── QueryTest.java
│           │           │           └── filters/
│           │           │               ├── AndFilterTest.java
│           │           │               ├── EqFilterTest.java
│           │           │               ├── InFilterTest.java
│           │           │               └── OrFilterTest.java
│           │           ├── config/
│           │           │   └── IntegerPropertyTest.java
│           │           ├── internal/
│           │           │   └── subscription/
│           │           │       └── EventSubscriberStreamObserverTest.java
│           │           ├── resiliency/
│           │           │   └── RetryPolicyTest.java
│           │           ├── runtime/
│           │           │   ├── Dapr.java
│           │           │   ├── DaprRuntime.java
│           │           │   ├── DaprRuntimeTest.java
│           │           │   ├── MethodListener.java
│           │           │   └── TopicListener.java
│           │           ├── serializer/
│           │           │   ├── CustomObjectSerializerTest.java
│           │           │   ├── DefaultObjectSerializerTest.java
│           │           │   └── FailurePolicySerializerTest.java
│           │           └── utils/
│           │               ├── DefaultContentTypeConverterTest.java
│           │               ├── DurationUtilsTest.java
│           │               ├── NetworkUtilsTest.java
│           │               ├── TestUtils.java
│           │               └── TypeRefTest.java
│           └── resources/
│               ├── certs/
│               │   ├── test-ca-cert.key
│               │   ├── test-ca-cert.pem
│               │   ├── test-cert.key
│               │   └── test-cert.pem
│               └── mockito-extensions/
│                   └── org.mockito.plugins.MockMaker
├── sdk-actors/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── actors/
│       │                   ├── ActorId.java
│       │                   ├── ActorMethod.java
│       │                   ├── ActorTrace.java
│       │                   ├── ActorType.java
│       │                   ├── ActorUtils.java
│       │                   ├── Undefined.java
│       │                   ├── client/
│       │                   │   ├── ActorClient.java
│       │                   │   ├── ActorProxy.java
│       │                   │   ├── ActorProxyBuilder.java
│       │                   │   ├── ActorProxyImpl.java
│       │                   │   ├── DaprClient.java
│       │                   │   └── DaprClientImpl.java
│       │                   └── runtime/
│       │                       ├── AbstractActor.java
│       │                       ├── ActorCallType.java
│       │                       ├── ActorFactory.java
│       │                       ├── ActorManager.java
│       │                       ├── ActorMethodContext.java
│       │                       ├── ActorMethodInfoMap.java
│       │                       ├── ActorObjectSerializer.java
│       │                       ├── ActorReminderParams.java
│       │                       ├── ActorRuntime.java
│       │                       ├── ActorRuntimeConfig.java
│       │                       ├── ActorRuntimeContext.java
│       │                       ├── ActorStateChange.java
│       │                       ├── ActorStateChangeKind.java
│       │                       ├── ActorStateManager.java
│       │                       ├── ActorStateOperation.java
│       │                       ├── ActorTimerParams.java
│       │                       ├── ActorTypeConfig.java
│       │                       ├── ActorTypeInformation.java
│       │                       ├── ActorTypeUtilities.java
│       │                       ├── DaprClient.java
│       │                       ├── DaprClientImpl.java
│       │                       ├── DaprStateAsyncProvider.java
│       │                       ├── DefaultActorFactory.java
│       │                       └── Remindable.java
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           └── actors/
│           │               ├── ActorIdTest.java
│           │               ├── TestUtils.java
│           │               ├── client/
│           │               │   ├── ActorProxyBuilderTest.java
│           │               │   ├── ActorProxyImplForTests.java
│           │               │   ├── ActorProxyImplTest.java
│           │               │   ├── DaprClientStub.java
│           │               │   └── DaprGrpcClientTest.java
│           │               └── runtime/
│           │                   ├── ActorCustomSerializerTest.java
│           │                   ├── ActorManagerTest.java
│           │                   ├── ActorMethodInfoMapTest.java
│           │                   ├── ActorNoStateTest.java
│           │                   ├── ActorReminderParamsTest.java
│           │                   ├── ActorRuntimeTest.java
│           │                   ├── ActorStatefulTest.java
│           │                   ├── ActorTimerTest.java
│           │                   ├── ActorTypeInformationTest.java
│           │                   ├── ActorTypeUtilitiesTest.java
│           │                   ├── DaprGrpcClientTest.java
│           │                   ├── DaprInMemoryStateProvider.java
│           │                   ├── DaprStateAsyncProviderTest.java
│           │                   ├── DefaultActorFactoryTest.java
│           │                   ├── DerivedActorTest.java
│           │                   ├── JavaSerializer.java
│           │                   └── ThrowFromPreAndPostActorMethodsTest.java
│           └── resources/
│               └── mockito-extensions/
│                   └── org.mockito.plugins.MockMaker
├── sdk-autogen/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── .keepme
│       └── test/
│           └── java/
│               └── .keepme
├── sdk-bom/
│   └── pom.xml
├── sdk-springboot/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── dapr/
│       │   │           └── springboot/
│       │   │               ├── DaprAutoConfiguration.java
│       │   │               ├── DaprBeanPostProcessor.java
│       │   │               ├── DaprController.java
│       │   │               ├── DaprRuntime.java
│       │   │               ├── DaprSubscriptionBuilder.java
│       │   │               ├── DaprTopicBulkSubscribe.java
│       │   │               ├── DaprTopicKey.java
│       │   │               ├── DaprTopicRoutes.java
│       │   │               ├── DaprTopicRule.java
│       │   │               ├── DaprTopicSubscription.java
│       │   │               └── annotations/
│       │   │                   └── BulkSubscribe.java
│       │   └── resources/
│       │       └── META-INF/
│       │           └── spring/
│       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── springboot/
│                           ├── DaprBeanPostProcessorSubscribeTest.java
│                           ├── DaprBeanPostProcessorTest.java
│                           ├── DaprRuntimeTest.java
│                           ├── DaprTopicBulkSubscribeTest.java
│                           ├── MockController.java
│                           ├── MockControllerNoClazzAnnotation.java
│                           ├── MockControllerWithSubscribe.java
│                           └── MockStringValueResolver.java
├── sdk-tests/
│   ├── .hashicorp_vault_token
│   ├── components/
│   │   ├── http_binding.yaml
│   │   ├── kafka_bindings.yaml
│   │   ├── mongo-statestore.yml
│   │   ├── pubsub.yaml
│   │   ├── redisconfigstore.yaml
│   │   ├── resiliency.yaml
│   │   ├── secret.json
│   │   ├── secretstore.yaml
│   │   └── statestore.yaml
│   ├── configurations/
│   │   └── configuration.yaml
│   ├── deploy/
│   │   └── local-test.yml
│   ├── pom.xml
│   ├── proto/
│   │   └── methodinvokeservice.proto
│   └── src/
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           ├── actors/
│           │           │   └── runtime/
│           │           │       └── DaprClientHttpUtils.java
│           │           ├── grpc/
│           │           │   └── GrpcHealthCheckService.java
│           │           ├── it/
│           │           │   ├── AppRun.java
│           │           │   ├── BaseIT.java
│           │           │   ├── Command.java
│           │           │   ├── DaprPorts.java
│           │           │   ├── DaprRun.java
│           │           │   ├── DaprRunConfig.java
│           │           │   ├── Retry.java
│           │           │   ├── Stoppable.java
│           │           │   ├── TestUtils.java
│           │           │   ├── ToxiProxyRun.java
│           │           │   ├── actors/
│           │           │   │   ├── ActivationDeactivationIT.java
│           │           │   │   ├── ActorExceptionIT.java
│           │           │   │   ├── ActorMethodNameIT.java
│           │           │   │   ├── ActorReminderFailoverIT.java
│           │           │   │   ├── ActorReminderRecoveryIT.java
│           │           │   │   ├── ActorSdkResiliencyIT.java
│           │           │   │   ├── ActorStateIT.java
│           │           │   │   ├── ActorTimerRecoveryIT.java
│           │           │   │   ├── ActorTurnBasedConcurrencyIT.java
│           │           │   │   ├── MethodEntryTracker.java
│           │           │   │   ├── MyActorTestUtils.java
│           │           │   │   ├── app/
│           │           │   │   │   ├── ActorReminderDataParam.java
│           │           │   │   │   ├── MyActor.java
│           │           │   │   │   ├── MyActorBase.java
│           │           │   │   │   ├── MyActorBinaryImpl.java
│           │           │   │   │   ├── MyActorObjectImpl.java
│           │           │   │   │   ├── MyActorService.java
│           │           │   │   │   ├── MyActorStringImpl.java
│           │           │   │   │   ├── MyObject.java
│           │           │   │   │   └── TestApplication.java
│           │           │   │   └── services/
│           │           │   │       └── springboot/
│           │           │   │           ├── DaprApplication.java
│           │           │   │           ├── DemoActor.java
│           │           │   │           ├── DemoActorImpl.java
│           │           │   │           ├── DemoActorService.java
│           │           │   │           ├── StatefulActor.java
│           │           │   │           ├── StatefulActorImpl.java
│           │           │   │           └── StatefulActorService.java
│           │           │   ├── api/
│           │           │   │   └── ApiIT.java
│           │           │   ├── binding/
│           │           │   │   └── http/
│           │           │   │       ├── BindingIT.java
│           │           │   │       ├── InputBindingController.java
│           │           │   │       └── InputBindingService.java
│           │           │   ├── configuration/
│           │           │   │   └── ConfigurationClientIT.java
│           │           │   ├── methodinvoke/
│           │           │   │   ├── grpc/
│           │           │   │   │   ├── MethodInvokeIT.java
│           │           │   │   │   └── MethodInvokeService.java
│           │           │   │   └── http/
│           │           │   │       ├── MethodInvokeController.java
│           │           │   │       ├── MethodInvokeIT.java
│           │           │   │       ├── MethodInvokeService.java
│           │           │   │       └── Person.java
│           │           │   ├── pubsub/
│           │           │   │   ├── http/
│           │           │   │   │   ├── PubSubIT.java
│           │           │   │   │   ├── SubscriberController.java
│           │           │   │   │   └── SubscriberService.java
│           │           │   │   └── stream/
│           │           │   │       └── PubSubStreamIT.java
│           │           │   ├── resiliency/
│           │           │   │   ├── SdkResiliencyIT.java
│           │           │   │   └── WaitForSidecarIT.java
│           │           │   ├── secrets/
│           │           │   │   └── SecretsClientIT.java
│           │           │   ├── spring/
│           │           │   │   ├── data/
│           │           │   │   │   ├── CustomMySQLContainer.java
│           │           │   │   │   ├── DaprKeyValueRepositoryIT.java
│           │           │   │   │   ├── DaprSpringDataConstants.java
│           │           │   │   │   ├── MySQLDaprKeyValueTemplateIT.java
│           │           │   │   │   ├── PostgreSQLDaprKeyValueTemplateIT.java
│           │           │   │   │   ├── TestDaprSpringDataConfiguration.java
│           │           │   │   │   ├── TestType.java
│           │           │   │   │   └── TestTypeRepository.java
│           │           │   │   └── messaging/
│           │           │   │       ├── DaprSpringMessagingIT.java
│           │           │   │       ├── TestApplication.java
│           │           │   │       └── TestRestController.java
│           │           │   ├── state/
│           │           │   │   ├── AbstractStateClientIT.java
│           │           │   │   ├── GRPCStateClientIT.java
│           │           │   │   ├── HelloWorldClientIT.java
│           │           │   │   ├── HelloWorldGrpcStateService.java
│           │           │   │   └── MyData.java
│           │           │   ├── testcontainers/
│           │           │   │   ├── ContainerConstants.java
│           │           │   │   ├── DaprClientConfiguration.java
│           │           │   │   ├── DaprClientFactory.java
│           │           │   │   ├── DaprPreviewClientConfiguration.java
│           │           │   │   ├── SubscriptionsRestController.java
│           │           │   │   ├── actors/
│           │           │   │   │   ├── DaprActorsIT.java
│           │           │   │   │   ├── TestActor.java
│           │           │   │   │   ├── TestActorImpl.java
│           │           │   │   │   ├── TestActorsApplication.java
│           │           │   │   │   └── TestDaprActorsConfiguration.java
│           │           │   │   ├── conversations/
│           │           │   │   │   ├── DaprConversationAlpha2IT.java
│           │           │   │   │   ├── DaprConversationIT.java
│           │           │   │   │   └── TestConversationApplication.java
│           │           │   │   ├── core/
│           │           │   │   │   ├── DaprContainerIT.java
│           │           │   │   │   ├── DaprPlacementContainerIT.java
│           │           │   │   │   └── DaprSchedulerContainerIT.java
│           │           │   │   ├── crypto/
│           │           │   │   │   └── DaprPreviewClientCryptoIT.java
│           │           │   │   ├── jobs/
│           │           │   │   │   ├── DaprJobsIT.java
│           │           │   │   │   └── TestJobsApplication.java
│           │           │   │   ├── pubsub/
│           │           │   │   │   ├── http/
│           │           │   │   │   │   ├── DaprPubSubIT.java
│           │           │   │   │   │   ├── SubscriberController.java
│           │           │   │   │   │   └── TestPubSubApplication.java
│           │           │   │   │   └── outbox/
│           │           │   │   │       ├── DaprPubSubOutboxIT.java
│           │           │   │   │       ├── Product.java
│           │           │   │   │       ├── ProductWebhookController.java
│           │           │   │   │       └── TestPubsubOutboxApplication.java
│           │           │   │   └── workflows/
│           │           │   │       ├── DaprWorkflowsIT.java
│           │           │   │       ├── FirstActivity.java
│           │           │   │       ├── KeyStore.java
│           │           │   │       ├── SecondActivity.java
│           │           │   │       ├── TaskExecutionIdActivity.java
│           │           │   │       ├── TestExecutionKeysWorkflow.java
│           │           │   │       ├── TestNamedActivitiesWorkflow.java
│           │           │   │       ├── TestWorkflow.java
│           │           │   │       ├── TestWorkflowPayload.java
│           │           │   │       ├── TestWorkflowsApplication.java
│           │           │   │       ├── TestWorkflowsConfiguration.java
│           │           │   │       ├── multiapp/
│           │           │   │       │   ├── App2TransformActivity.java
│           │           │   │       │   ├── App2Worker.java
│           │           │   │       │   ├── App3FinalizeActivity.java
│           │           │   │       │   ├── App3Worker.java
│           │           │   │       │   ├── ChildTransformActivity.java
│           │           │   │       │   ├── MultiAppWorker.java
│           │           │   │       │   ├── MultiAppWorkflow.java
│           │           │   │       │   ├── SubOrchestrationChildWorker.java
│           │           │   │       │   ├── SubOrchestrationChildWorkflow.java
│           │           │   │       │   ├── SubOrchestrationParentWorker.java
│           │           │   │       │   ├── SubOrchestrationParentWorkflow.java
│           │           │   │       │   ├── WorkflowsMultiAppCallActivityIT.java
│           │           │   │       │   └── WorkflowsMultiAppSubOrchestrationIT.java
│           │           │   │       └── version/
│           │           │   │           ├── full/
│           │           │   │           │   ├── FullVersioningWorkflowsIT.java
│           │           │   │           │   ├── VersionedWorkflows.java
│           │           │   │           │   ├── WorkflowV1Worker.java
│           │           │   │           │   └── WorkflowV2Worker.java
│           │           │   │           └── patch/
│           │           │   │               ├── PatchVersioningWorkflowsIT.java
│           │           │   │               ├── PatchedWorkflows.java
│           │           │   │               ├── WorkflowV1Worker.java
│           │           │   │               └── WorkflowV2Worker.java
│           │           │   └── tracing/
│           │           │       ├── OpenTelemetry.java
│           │           │       ├── Validation.java
│           │           │       ├── grpc/
│           │           │       │   ├── Service.java
│           │           │       │   └── TracingIT.java
│           │           │       └── http/
│           │           │           ├── Controller.java
│           │           │           ├── OpenTelemetryConfig.java
│           │           │           ├── OpenTelemetryInterceptor.java
│           │           │           ├── OpenTelemetryInterceptorConfig.java
│           │           │           ├── Service.java
│           │           │           └── TracingIT.java
│           │           └── testcontainers/
│           │               └── internal/
│           │                   ├── DaprContainerFactory.java
│           │                   ├── DaprSidecarContainer.java
│           │                   └── spring/
│           │                       ├── DaprSpringBootContextInitializer.java
│           │                       ├── DaprSpringBootExtension.java
│           │                       └── DaprSpringBootTest.java
│           └── resources/
│               ├── logback.xml
│               └── query.json
├── sdk-workflows/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── workflows/
│       │                   ├── Workflow.java
│       │                   ├── WorkflowActivity.java
│       │                   ├── WorkflowActivityContext.java
│       │                   ├── WorkflowContext.java
│       │                   ├── WorkflowStub.java
│       │                   ├── WorkflowTaskOptions.java
│       │                   ├── WorkflowTaskRetryContext.java
│       │                   ├── WorkflowTaskRetryHandler.java
│       │                   ├── WorkflowTaskRetryPolicy.java
│       │                   ├── client/
│       │                   │   ├── DaprWorkflowClient.java
│       │                   │   ├── NewWorkflowOptions.java
│       │                   │   ├── WorkflowFailureDetails.java
│       │                   │   ├── WorkflowInstanceStatus.java
│       │                   │   ├── WorkflowRuntimeStatus.java
│       │                   │   └── WorkflowState.java
│       │                   ├── internal/
│       │                   │   └── ApiTokenClientInterceptor.java
│       │                   └── runtime/
│       │                       ├── DefaultWorkflowActivityContext.java
│       │                       ├── DefaultWorkflowContext.java
│       │                       ├── DefaultWorkflowFailureDetails.java
│       │                       ├── DefaultWorkflowInstanceStatus.java
│       │                       ├── DefaultWorkflowState.java
│       │                       ├── WorkflowActivityClassWrapper.java
│       │                       ├── WorkflowActivityInstanceWrapper.java
│       │                       ├── WorkflowClassWrapper.java
│       │                       ├── WorkflowInstanceWrapper.java
│       │                       ├── WorkflowRuntime.java
│       │                       ├── WorkflowRuntimeBuilder.java
│       │                       ├── WorkflowRuntimeStatusConverter.java
│       │                       └── WorkflowVersionWrapper.java
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── workflows/
│                           ├── DefaultWorkflowContextTest.java
│                           ├── WorkflowTaskOptionsTest.java
│                           ├── WorkflowTest.java
│                           ├── client/
│                           │   ├── DaprWorkflowClientTest.java
│                           │   ├── NewWorkflowOptionsTest.java
│                           │   ├── WorkflowInstanceStatusTest.java
│                           │   └── WorkflowStateTest.java
│                           └── runtime/
│                               ├── DefaultWorkflowActivityContextTest.java
│                               ├── WorkflowActivityClassWrapperTest.java
│                               ├── WorkflowActivityInstanceWrapperTest.java
│                               ├── WorkflowClassWrapperTest.java
│                               ├── WorkflowInstanceWrapperTest.java
│                               ├── WorkflowRuntimeBuilderTest.java
│                               ├── WorkflowRuntimeStatusConverterTest.java
│                               ├── WorkflowRuntimeTest.java
│                               └── WorkflowVersionWrapperTest.java
├── settings.xml
├── spotbugs-exclude.xml
├── spring-boot-4-examples/
│   ├── consumer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot4/
│   │       │   │               └── examples/
│   │       │   │                   └── consumer/
│   │       │   │                       ├── ConsumerApplication.java
│   │       │   │                       ├── Order.java
│   │       │   │                       └── SubscriberRestController.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── springboot4/
│   │                           └── examples/
│   │                               └── consumer/
│   │                                   ├── ConsumerAppIT.java
│   │                                   ├── ConsumerAppTestConfiguration.java
│   │                                   ├── DaprTestContainersConfig.java
│   │                                   └── TestConsumerApplication.java
│   ├── pom.xml
│   ├── producer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot4/
│   │       │   │               └── examples/
│   │       │   │                   └── producer/
│   │       │   │                       ├── Customer.java
│   │       │   │                       ├── CustomerStore.java
│   │       │   │                       ├── CustomersRestController.java
│   │       │   │                       ├── Jackson3SerializerConfiguration.java
│   │       │   │                       ├── Order.java
│   │       │   │                       ├── OrderDTO.java
│   │       │   │                       ├── OrderRepository.java
│   │       │   │                       ├── OrdersRestController.java
│   │       │   │                       ├── ProducerAppConfiguration.java
│   │       │   │                       ├── ProducerApplication.java
│   │       │   │                       └── workflow/
│   │       │   │                           ├── CustomerFollowupActivity.java
│   │       │   │                           ├── CustomerWorkflow.java
│   │       │   │                           └── RegisterCustomerActivity.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── springboot4/
│   │                           └── examples/
│   │                               └── producer/
│   │                                   ├── DaprTestContainersConfig.java
│   │                                   ├── ProducerAppIT.java
│   │                                   ├── TestProducerApplication.java
│   │                                   └── TestSubscriberRestController.java
│   └── workflows/
│       ├── multi-app/
│       │   ├── README.md
│       │   ├── orchestrator/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot4/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── orchestrator/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── CustomerWorkflow.java
│       │   │       │   │                       ├── CustomersRestController.java
│       │   │       │   │                       └── OrchestratorApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot4/
│       │   │           │               └── examples/
│       │   │           │                   └── orchestrator/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── DockerImages.java
│       │   │           │                       ├── OrchestratorAppIT.java
│       │   │           │                       └── TestOrchestratorApplication.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   ├── pom.xml
│       │   ├── spotbugs-exclude.xml
│       │   ├── worker-one/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot4/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── workerone/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── RegisterCustomerActivity.java
│       │   │       │   │                       └── WorkerOneApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot4/
│       │   │           │               └── examples/
│       │   │           │                   └── workerone/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── TestWorkerOneApplication.java
│       │   │           │                       └── WorkerOneAppIT.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   └── worker-two/
│       │       ├── pom.xml
│       │       └── src/
│       │           ├── main/
│       │           │   ├── java/
│       │           │   │   └── io/
│       │           │   │       └── dapr/
│       │           │   │           └── springboot4/
│       │           │   │               └── examples/
│       │           │   │                   └── workertwo/
│       │           │   │                       ├── Customer.java
│       │           │   │                       ├── CustomerFollowupActivity.java
│       │           │   │                       └── WorkerTwoApplication.java
│       │           │   └── resources/
│       │           │       └── application.properties
│       │           └── test/
│       │               ├── java/
│       │               │   └── io/
│       │               │       └── dapr/
│       │               │           └── springboot4/
│       │               │               └── examples/
│       │               │                   └── workertwo/
│       │               │                       ├── DaprTestContainersConfig.java
│       │               │                       ├── TestWorkerTwoApplication.java
│       │               │                       └── WorkerTwoAppIT.java
│       │               └── resources/
│       │                   └── application.properties
│       ├── patterns/
│       │   ├── README.md
│       │   ├── body.json
│       │   ├── pom.xml
│       │   └── src/
│       │       ├── main/
│       │       │   ├── java/
│       │       │   │   └── io/
│       │       │   │       └── dapr/
│       │       │   │           └── springboot4/
│       │       │   │               └── examples/
│       │       │   │                   └── wfp/
│       │       │   │                       ├── WorkflowPatternsApplication.java
│       │       │   │                       ├── WorkflowPatternsConfiguration.java
│       │       │   │                       ├── WorkflowPatternsRestController.java
│       │       │   │                       ├── chain/
│       │       │   │                       │   ├── ChainWorkflow.java
│       │       │   │                       │   └── ToUpperCaseActivity.java
│       │       │   │                       ├── child/
│       │       │   │                       │   ├── ChildWorkflow.java
│       │       │   │                       │   ├── ParentWorkflow.java
│       │       │   │                       │   └── ReverseActivity.java
│       │       │   │                       ├── continueasnew/
│       │       │   │                       │   ├── CleanUpActivity.java
│       │       │   │                       │   ├── CleanUpLog.java
│       │       │   │                       │   └── ContinueAsNewWorkflow.java
│       │       │   │                       ├── externalevent/
│       │       │   │                       │   ├── ApproveActivity.java
│       │       │   │                       │   ├── Decision.java
│       │       │   │                       │   ├── DenyActivity.java
│       │       │   │                       │   └── ExternalEventWorkflow.java
│       │       │   │                       ├── fanoutin/
│       │       │   │                       │   ├── CountWordsActivity.java
│       │       │   │                       │   ├── FanOutInWorkflow.java
│       │       │   │                       │   └── Result.java
│       │       │   │                       ├── remoteendpoint/
│       │       │   │                       │   ├── CallRemoteEndpointActivity.java
│       │       │   │                       │   ├── Payload.java
│       │       │   │                       │   └── RemoteEndpointWorkflow.java
│       │       │   │                       ├── suspendresume/
│       │       │   │                       │   ├── PerformTaskActivity.java
│       │       │   │                       │   └── SuspendResumeWorkflow.java
│       │       │   │                       └── timer/
│       │       │   │                           ├── DurationTimerWorkflow.java
│       │       │   │                           ├── LogActivity.java
│       │       │   │                           ├── TimerLogService.java
│       │       │   │                           └── ZonedDateTimeTimerWorkflow.java
│       │       │   └── resources/
│       │       │       └── application.properties
│       │       └── test/
│       │           ├── java/
│       │           │   └── io/
│       │           │       └── dapr/
│       │           │           └── springboot4/
│       │           │               └── examples/
│       │           │                   └── wfp/
│       │           │                       ├── DaprTestContainersConfig.java
│       │           │                       ├── TestWorkflowPatternsApplication.java
│       │           │                       └── WorkflowPatternsAppIT.java
│       │           └── resources/
│       │               ├── application.properties
│       │               └── third-parties/
│       │                   └── remote-http-service.yaml
│       ├── pom.xml
│       └── spotbugs-exclude.xml
├── spring-boot-4-sdk-tests/
│   ├── pom.xml
│   └── src/
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── it/
│                           └── springboot4/
│                               └── testcontainers/
│                                   ├── ContainerConstants.java
│                                   ├── DaprClientConfiguration.java
│                                   ├── DaprClientFactory.java
│                                   ├── DaprContainerFactory.java
│                                   ├── DaprPreviewClientConfiguration.java
│                                   ├── DaprSidecarContainer.java
│                                   ├── Retry.java
│                                   ├── SubscriptionsRestController.java
│                                   ├── TestUtils.java
│                                   ├── actors/
│                                   │   ├── DaprActorsIT.java
│                                   │   ├── TestActor.java
│                                   │   ├── TestActorImpl.java
│                                   │   ├── TestActorsApplication.java
│                                   │   └── TestDaprActorsConfiguration.java
│                                   ├── conversations/
│                                   │   ├── DaprConversationAlpha2IT.java
│                                   │   ├── DaprConversationIT.java
│                                   │   └── TestConversationApplication.java
│                                   ├── core/
│                                   │   ├── DaprContainerIT.java
│                                   │   ├── DaprPlacementContainerIT.java
│                                   │   └── DaprSchedulerContainerIT.java
│                                   ├── crypto/
│                                   │   └── DaprPreviewClientCryptoIT.java
│                                   ├── jobs/
│                                   │   ├── DaprJobsIT.java
│                                   │   └── TestJobsApplication.java
│                                   ├── pubsub/
│                                   │   ├── http/
│                                   │   │   ├── DaprPubSubIT.java
│                                   │   │   ├── SubscriberController.java
│                                   │   │   └── TestPubSubApplication.java
│                                   │   └── outbox/
│                                   │       ├── DaprPubSubOutboxIT.java
│                                   │       ├── Product.java
│                                   │       ├── ProductWebhookController.java
│                                   │       └── TestPubsubOutboxApplication.java
│                                   ├── spring/
│                                   │   ├── DaprSpringBootContextInitializer.java
│                                   │   ├── DaprSpringBootExtension.java
│                                   │   └── DaprSpringBootTest.java
│                                   └── workflows/
│                                       ├── DaprWorkflowsIT.java
│                                       ├── FirstActivity.java
│                                       ├── KeyStore.java
│                                       ├── SecondActivity.java
│                                       ├── TaskExecutionIdActivity.java
│                                       ├── TestExecutionKeysWorkflow.java
│                                       ├── TestNamedActivitiesWorkflow.java
│                                       ├── TestWorkflow.java
│                                       ├── TestWorkflowPayload.java
│                                       ├── TestWorkflowsApplication.java
│                                       ├── TestWorkflowsConfiguration.java
│                                       └── multiapp/
│                                           ├── App2TransformActivity.java
│                                           ├── App2Worker.java
│                                           ├── App3FinalizeActivity.java
│                                           ├── App3Worker.java
│                                           ├── MultiAppWorker.java
│                                           ├── MultiAppWorkflow.java
│                                           └── WorkflowsMultiAppCallActivityIT.java
├── spring-boot-examples/
│   ├── README.md
│   ├── consumer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot/
│   │       │   │               └── examples/
│   │       │   │                   └── consumer/
│   │       │   │                       ├── ConsumerApplication.java
│   │       │   │                       ├── Order.java
│   │       │   │                       └── SubscriberRestController.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── springboot/
│   │           │               └── examples/
│   │           │                   └── consumer/
│   │           │                       ├── ConsumerAppIT.java
│   │           │                       ├── ConsumerAppTestConfiguration.java
│   │           │                       ├── DaprTestContainersConfig.java
│   │           │                       └── TestConsumerApplication.java
│   │           └── resources/
│   │               └── application.properties
│   ├── kubernetes/
│   │   ├── README.md
│   │   ├── consumer-app.yaml
│   │   ├── kind-with-registry.sh
│   │   ├── kvbinding.yaml
│   │   ├── kvstore.yaml
│   │   ├── producer-app.yaml
│   │   └── pubsub.yaml
│   ├── pom.xml
│   ├── producer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot/
│   │       │   │               └── examples/
│   │       │   │                   └── producer/
│   │       │   │                       ├── Customer.java
│   │       │   │                       ├── CustomerStore.java
│   │       │   │                       ├── CustomersRestController.java
│   │       │   │                       ├── Order.java
│   │       │   │                       ├── OrderDTO.java
│   │       │   │                       ├── OrderRepository.java
│   │       │   │                       ├── OrdersRestController.java
│   │       │   │                       ├── ProducerAppConfiguration.java
│   │       │   │                       ├── ProducerApplication.java
│   │       │   │                       └── workflow/
│   │       │   │                           ├── CustomerFollowupActivity.java
│   │       │   │                           ├── CustomerWorkflow.java
│   │       │   │                           └── RegisterCustomerActivity.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── springboot/
│   │           │               └── examples/
│   │           │                   └── producer/
│   │           │                       ├── DaprTestContainersConfig.java
│   │           │                       ├── ProducerAppIT.java
│   │           │                       ├── TestProducerApplication.java
│   │           │                       └── TestSubscriberRestController.java
│   │           └── resources/
│   │               └── application.properties
│   ├── spotbugs-exclude.xml
│   └── workflows/
│       ├── multi-app/
│       │   ├── README.md
│       │   ├── orchestrator/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── orchestrator/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── CustomerWorkflow.java
│       │   │       │   │                       ├── CustomersRestController.java
│       │   │       │   │                       └── OrchestratorApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot/
│       │   │           │               └── examples/
│       │   │           │                   └── orchestrator/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── DockerImages.java
│       │   │           │                       ├── OrchestratorAppIT.java
│       │   │           │                       └── TestOrchestratorApplication.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   ├── pom.xml
│       │   ├── spotbugs-exclude.xml
│       │   ├── worker-one/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── workerone/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── RegisterCustomerActivity.java
│       │   │       │   │                       └── WorkerOneApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot/
│       │   │           │               └── examples/
│       │   │           │                   └── workerone/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── TestWorkerOneApplication.java
│       │   │           │                       └── WorkerOneAppIT.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   └── worker-two/
│       │       ├── pom.xml
│       │       └── src/
│       │           ├── main/
│       │           │   ├── java/
│       │           │   │   └── io/
│       │           │   │       └── dapr/
│       │           │   │           └── springboot/
│       │           │   │               └── examples/
│       │           │   │                   └── workertwo/
│       │           │   │                       ├── Customer.java
│       │           │   │                       ├── CustomerFollowupActivity.java
│       │           │   │                       └── WorkerTwoApplication.java
│       │           │   └── resources/
│       │           │       └── application.properties
│       │           └── test/
│       │               ├── java/
│       │               │   └── io/
│       │               │       └── dapr/
│       │               │           └── springboot/
│       │               │               └── examples/
│       │               │                   └── workertwo/
│       │               │                       ├── DaprTestContainersConfig.java
│       │               │                       ├── TestWorkerTwoApplication.java
│       │               │                       └── WorkerTwoAppIT.java
│       │               └── resources/
│       │                   └── application.properties
│       ├── patterns/
│       │   ├── README.md
│       │   ├── body.json
│       │   ├── pom.xml
│       │   └── src/
│       │       ├── main/
│       │       │   ├── java/
│       │       │   │   └── io/
│       │       │   │       └── dapr/
│       │       │   │           └── springboot/
│       │       │   │               └── examples/
│       │       │   │                   └── wfp/
│       │       │   │                       ├── WorkflowPatternsApplication.java
│       │       │   │                       ├── WorkflowPatternsConfiguration.java
│       │       │   │                       ├── WorkflowPatternsRestController.java
│       │       │   │                       ├── chain/
│       │       │   │                       │   ├── ChainWorkflow.java
│       │       │   │                       │   └── ToUpperCaseActivity.java
│       │       │   │                       ├── child/
│       │       │   │                       │   ├── ChildWorkflow.java
│       │       │   │                       │   ├── ParentWorkflow.java
│       │       │   │                       │   └── ReverseActivity.java
│       │       │   │                       ├── continueasnew/
│       │       │   │                       │   ├── CleanUpActivity.java
│       │       │   │                       │   ├── CleanUpLog.java
│       │       │   │                       │   └── ContinueAsNewWorkflow.java
│       │       │   │                       ├── externalevent/
│       │       │   │                       │   ├── ApproveActivity.java
│       │       │   │                       │   ├── Decision.java
│       │       │   │                       │   ├── DenyActivity.java
│       │       │   │                       │   └── ExternalEventWorkflow.java
│       │       │   │                       ├── fanoutin/
│       │       │   │                       │   ├── CountWordsActivity.java
│       │       │   │                       │   ├── FanOutInWorkflow.java
│       │       │   │                       │   └── Result.java
│       │       │   │                       ├── remoteendpoint/
│       │       │   │                       │   ├── CallRemoteEndpointActivity.java
│       │       │   │                       │   ├── Payload.java
│       │       │   │                       │   └── RemoteEndpointWorkflow.java
│       │       │   │                       ├── suspendresume/
│       │       │   │                       │   ├── PerformTaskActivity.java
│       │       │   │                       │   └── SuspendResumeWorkflow.java
│       │       │   │                       └── timer/
│       │       │   │                           ├── DurationTimerWorkflow.java
│       │       │   │                           ├── LogActivity.java
│       │       │   │                           ├── TimerLogService.java
│       │       │   │                           └── ZonedDateTimeTimerWorkflow.java
│       │       │   └── resources/
│       │       │       └── application.properties
│       │       └── test/
│       │           ├── java/
│       │           │   └── io/
│       │           │       └── dapr/
│       │           │           └── springboot/
│       │           │               └── examples/
│       │           │                   └── wfp/
│       │           │                       ├── DaprTestContainersConfig.java
│       │           │                       ├── TestWorkflowPatternsApplication.java
│       │           │                       └── WorkflowPatternsAppIT.java
│       │           └── resources/
│       │               ├── application.properties
│       │               └── third-parties/
│       │                   └── remote-http-service.yaml
│       ├── pom.xml
│       ├── spotbugs-exclude.xml
│       └── versioning/
│           ├── README.md
│           ├── full-version-worker-one/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workerone/
│           │       │   │                       ├── FullVersionWorkerOneApplication.java
│           │       │   │                       ├── RegisterV1Components.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workerone/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── full-version-worker-two/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workertwo/
│           │       │   │                       ├── FullVersionWorkerTwoApplication.java
│           │       │   │                       ├── RegisterV2Components.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workertwo/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerTwoApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── patch-version-worker-one/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workerone/
│           │       │   │                       ├── PatchVersionWorkerOneApplication.java
│           │       │   │                       ├── RegisterComponents.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workerone/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── patch-version-worker-two/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workertwo/
│           │       │   │                       ├── PatchVersionWorkerTwoApplication.java
│           │       │   │                       ├── RegisterPatchedComponents.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workertwo/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── pom.xml
│           ├── spotbugs-exclude.xml
│           └── version-orchestrator/
│               ├── pom.xml
│               └── src/
│                   ├── main/
│                   │   ├── java/
│                   │   │   └── io/
│                   │   │       └── dapr/
│                   │   │           └── springboot/
│                   │   │               └── examples/
│                   │   │                   └── orchestrator/
│                   │   │                       ├── FullVersionRestController.java
│                   │   │                       ├── PatchVersionRestController.java
│                   │   │                       └── VersionOrchestratorApplication.java
│                   │   └── resources/
│                   │       └── application.properties
│                   └── test/
│                       ├── java/
│                       │   └── io/
│                       │       └── dapr/
│                       │           └── springboot/
│                       │               └── examples/
│                       │                   └── orchestrator/
│                       │                       ├── DaprTestContainersConfig.java
│                       │                       ├── DockerImages.java
│                       │                       └── TestOrchestratorApplication.java
│                       └── resources/
│                           └── application.properties
└── testcontainers-dapr/
    ├── pom.xml
    └── src/
        ├── main/
        │   └── java/
        │       └── io/
        │           └── dapr/
        │               └── testcontainers/
        │                   ├── AppHttpPipeline.java
        │                   ├── Component.java
        │                   ├── Configuration.java
        │                   ├── ConfigurationSettings.java
        │                   ├── DaprContainer.java
        │                   ├── DaprContainerConstants.java
        │                   ├── DaprLogLevel.java
        │                   ├── DaprPlacementContainer.java
        │                   ├── DaprProtocol.java
        │                   ├── DaprSchedulerContainer.java
        │                   ├── HttpEndpoint.java
        │                   ├── ListEntry.java
        │                   ├── MetadataEntry.java
        │                   ├── OtelTracingConfigurationSettings.java
        │                   ├── Subscription.java
        │                   ├── TracingConfigurationSettings.java
        │                   ├── WorkflowDashboardContainer.java
        │                   ├── ZipkinTracingConfigurationSettings.java
        │                   ├── converter/
        │                   │   ├── ComponentYamlConverter.java
        │                   │   ├── ConfigurationYamlConverter.java
        │                   │   ├── HttpEndpointYamlConverter.java
        │                   │   ├── SubscriptionYamlConverter.java
        │                   │   ├── YamlConverter.java
        │                   │   └── YamlMapperFactory.java
        │                   └── wait/
        │                       └── strategy/
        │                           ├── AbstractDaprWaitStrategy.java
        │                           ├── ActorWaitStrategy.java
        │                           ├── DaprWait.java
        │                           ├── SubscriptionWaitStrategy.java
        │                           └── metadata/
        │                               ├── Actor.java
        │                               ├── Component.java
        │                               ├── Metadata.java
        │                               └── Subscription.java
        └── test/
            ├── java/
            │   └── io/
            │       └── dapr/
            │           └── testcontainers/
            │               ├── DaprComponentTest.java
            │               ├── DaprContainerTest.java
            │               ├── DaprWorkflowDashboardTest.java
            │               ├── converter/
            │               │   ├── ComponentYamlConverterTest.java
            │               │   ├── ConfigurationYamlConverterTest.java
            │               │   ├── HttpEndpointYamlConverterTest.java
            │               │   └── SubscriptionYamlConverterTest.java
            │               └── wait/
            │                   └── strategy/
            │                       ├── ActorWaitStrategyTest.java
            │                       ├── DaprWaitTest.java
            │                       ├── SubscriptionWaitStrategyTest.java
            │                       └── metadata/
            │                           └── MetadataTest.java
            └── resources/
                └── dapr-resources/
                    └── statestore.yaml

================================================
FILE CONTENTS
================================================

================================================
FILE: .codecov.yaml
================================================
ignore:
  - examples
  - sdk-tests
  - sdk-autogen
comment:
  # Delete old comment and post new one for new coverage information.
  behavior: new


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Report a bug in java-sdk
title: ''
labels: kind/bug
assignees: ''

---
## Expected Behavior

<!-- Briefly describe what you expect to happen -->


## Actual Behavior

<!-- Briefly describe what is actually happening -->


## Steps to Reproduce the Problem

<!-- How can a maintainer reproduce this issue (be detailed) -->

## Release Note

<!-- How should the fix for this issue be communicated in our release notes? It can be populated later. -->
<!-- Keep it as a single line. Examples: -->

<!-- RELEASE NOTE: **ADD** New feature in Dapr. -->
<!-- RELEASE NOTE: **FIX** Bug in runtime. -->
<!-- RELEASE NOTE: **UPDATE** Runtime dependency. -->

RELEASE NOTE:

================================================
FILE: .github/ISSUE_TEMPLATE/discussion.md
================================================
---
name: Feature Request
about: Start a discussion for java-sdk
title: ''
labels: kind/discussion
assignees: ''

---


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature Request
about: Create a Feature Request for java-sdk
title: ''
labels: kind/enhancement
assignees: ''

---
## Describe the feature

## Release Note
<!-- How should this new feature be announced in our release notes? It can be populated later. -->
<!-- Keep it as a single line. Examples: -->

<!-- RELEASE NOTE: **ADD** New feature in Dapr. -->
<!-- RELEASE NOTE: **FIX** Bug in runtime. -->
<!-- RELEASE NOTE: **UPDATE** Runtime dependency. -->

RELEASE NOTE:


================================================
FILE: .github/ISSUE_TEMPLATE/proposal.md
================================================
---
name: Proposal
about: Create a proposal for java-sdk
title: ''
labels: kind/proposal
assignees: ''

---
## Describe the proposal


================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: Question
about: Ask a question about java-sdk
title: ''
labels: kind/question
assignees: ''

---
## Ask your question here


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "maven"
    directory: "/"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "maven"
    directory: "/sdk"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "maven"
    directory: "/sdk-actors"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "maven"
    directory: "/sdk-autogen"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "maven"
    directory: "/sdk-springboot"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "maven"
    directory: "/sdk-tests"
    schedule:
      interval: "weekly"
    target-branch: "dependabot"
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"


================================================
FILE: .github/holopin.yml
================================================
organization: dapr
defaultSticker: clrqfdv4x24910fl5n4iwu5oa
stickers:
  -
    id: clrqfdv4x24910fl5n4iwu5oa
    alias: sdk-badge


================================================
FILE: .github/pull_request_template.md
================================================
# Description

_Please explain the changes you've made_

## Issue reference

We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.

Please reference the issue this PR will close: #_[issue number]_

## Checklist

Please make sure you've completed the relevant tasks for this PR, out of the following list:

* [ ] Code compiles correctly
* [ ] Created/updated tests
* [ ] Extended the documentation


================================================
FILE: .github/scripts/automerge.py
================================================
# Copyright 2021 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script automerges PRs

import os

from github import Github


g = Github(os.getenv("GITHUB_TOKEN"))
repo = g.get_repo(os.getenv("GITHUB_REPOSITORY"))

def fetch_pulls(mergeable_state):
    return [pr for pr in repo.get_pulls(state='open', sort='created') \
        if pr.mergeable_state == mergeable_state and 'auto-merge' in [l.name for l in pr.labels]]

def is_approved(pr):
    approvers = [r.user.login for r in pr.get_reviews() if r.state == 'APPROVED']
    return len([a for a in approvers if repo.get_collaborator_permission(a) in ['admin', 'write']]) > 0

# First, find a PR that can be merged
pulls = fetch_pulls('clean')
print(f"Detected {len(pulls)} open pull requests in {repo.name} to be automerged.")
merged = False
for pr in pulls:
    if is_approved(pr):
        # Merge only one PR per run.
        print(f"Merging PR {pr.html_url}")
        try:
            pr.merge(merge_method='squash')
            merged = True
            break
        except:
            print(f"Failed to merge PR {pr.html_url}")

if len(pulls) > 0 and not merged:
    print("No PR was automerged.")

# Now, update all PRs that are behind.
pulls = fetch_pulls('behind')
print(f"Detected {len(pulls)} open pull requests in {repo.name} to be updated.")
for pr in pulls:
    if is_approved(pr):
        # Update all PRs since there is no guarantee they will all pass.
        print(f"Updating PR {pr.html_url}")
        try:
            pr.update_branch()
        except:
            print(f"Failed to update PR {pr.html_url}")

pulls = fetch_pulls('dirty')
print(f"Detected {len(pulls)} open pull requests in {repo.name} to be automerged but are in dirty state.")
for pr in pulls:
    print(f"PR is in dirty state: {pr.html_url}")

print("Done.")

================================================
FILE: .github/scripts/create-release.sh
================================================
#!/usr/bin/env bash
#
# Copyright 2024 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -ue

script_dir=$(readlink -f $(dirname $0))
current_time=$(date +"%Y-%m-%d_%H-%M-%S")

# Thanks to https://ihateregex.io/expr/semver/
SEMVER_REGEX='^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'

REL_VERSION=`echo $1 | sed -r 's/^[vV]?([0-9].+)$/\1/'`

if [ `echo $REL_VERSION | pcre2grep "$SEMVER_REGEX"` ]; then
  echo "$REL_VERSION is a valid semantic version."
else
  echo "$REL_VERSION is not a valid semantic version."
  exit 1
fi

MAJOR_MINOR_VERSION=`echo ${REL_VERSION}- | cut -d- -f1 | cut -d. -f1,2`
MAJOR_MINOR_PATCH_VERSION=`echo ${REL_VERSION}- | cut -d- -f1 | cut -d. -f1,2,3`
VARIANT=`echo ${REL_VERSION}- | cut -d- -f2`

if [ "$VARIANT" = "SNAPSHOT" ]; then
  echo "SNAPSHOT release detected, updating version in master branch to $REL_VERSION ..."
  if [ "$REL_VERSION" != "${MAJOR_MINOR_PATCH_VERSION}-SNAPSHOT" ]; then
    echo "Invalid snapshot version: $REL_VERSION"
    exit 3
  fi

  # Change is done directly in the master branch.
  ${script_dir}/update_sdk_version.sh $REL_VERSION
  git commit -s -m "Update master version to ${REL_VERSION}" -a
  git clean -f -d
  git push origin master
  echo "Updated master branch with version ${REL_VERSION}."
  exit 0
elif [ "$VARIANT" = "rc" ]; then
  echo "Release-candidate version detected: $REL_VERSION"
  RC_COUNT=`echo ${REL_VERSION}- | cut -d- -f3`
  if ! ((10#${RC_COUNT} >= 0)) 2>/dev/null || [ "$RC_COUNT" == "" ]; then
    echo "Invalid release-candidate count: $RC_COUNT"
    exit 3
  fi
  if [ "$REL_VERSION" != "${MAJOR_MINOR_PATCH_VERSION}-rc-${RC_COUNT}" ]; then
    echo "Invalid release-candidate version: $REL_VERSION"
    exit 3
  fi
elif [ "$VARIANT" = "" ]; then
  echo "Release version detected: $REL_VERSION"
else
  echo "Invalid release variant: $VARIANT"
  exit 3
fi

echo "Passed all version format validations."

RELEASE_BRANCH="release-$MAJOR_MINOR_VERSION"
RELEASE_TAG="v$REL_VERSION"

if [ `git rev-parse --verify origin/$RELEASE_BRANCH 2>/dev/null` ]; then
  echo "$RELEASE_BRANCH branch already exists, checking it out ..."
  git checkout $RELEASE_BRANCH
else
  echo "$RELEASE_BRANCH does not exist, creating ..."
  git checkout -b $RELEASE_BRANCH
  git push origin $RELEASE_BRANCH
fi
echo "$RELEASE_BRANCH branch is ready."

if [ `git rev-parse --verify $RELEASE_TAG 2>/dev/null` ]; then
  echo "$RELEASE_TAG tag already exists, checking it out ..."
  git checkout $RELEASE_TAG
else
  ${script_dir}/update_sdk_version.sh $REL_VERSION
  git commit -s -m "Release $REL_VERSION" -a
  if [ "$VARIANT" = "" ]; then
    echo "Generating docs ..."
    ${script_dir}/update_docs.sh $REL_VERSION
    git commit -s -m "Generate updated javadocs for $REL_VERSION" -a
  fi
  git push origin $RELEASE_BRANCH

  echo "Tagging $RELEASE_TAG ..."
  git tag $RELEASE_TAG
  echo "$RELEASE_TAG is tagged."

  echo "Pushing $RELEASE_TAG tag ..."
  git push origin $RELEASE_TAG
  echo "$RELEASE_TAG tag is pushed."
fi

if [ "$VARIANT" = "" ]; then
  git clean -xdf
  echo "Updating docs in master branch ..."
  git checkout master
  git fetch origin
  git reset --hard origin/master
  git cherry-pick --strategy=recursive -X theirs $RELEASE_TAG
  git push origin master
  echo "Updated docs in master branch."
fi

echo "Done."

================================================
FILE: .github/scripts/update_docs.sh
================================================
#!/bin/bash

set -uex

DAPR_JAVA_SDK_VERSION=$1

# Alpha artifacts of the sdk tracks the regular SDK minor and patch versions, just not the major.
# Replaces the SDK major version to 0 for alpha artifacts.
DAPR_JAVA_SDK_ALPHA_VERSION=`echo $DAPR_JAVA_SDK_VERSION | sed 's/^[0-9]*\./0./'`

if [[ "$OSTYPE" == "darwin"* ]]; then
  sed -i bak "s/<version>.*<\/version>\$/<version>${DAPR_JAVA_SDK_VERSION}<\/version>/g" README.md
  sed -i bak "s/compile('io.dapr:\(.*\):.*')/compile('io.dapr:\\1:${DAPR_JAVA_SDK_VERSION}')/g" README.md
  rm README.mdbak
else
  sed -i "s/<version>.*<\/version>\$/<version>${DAPR_JAVA_SDK_VERSION}<\/version>/g" README.md
  sed -i "s/compile('io.dapr:\(.*\):.*')/compile('io.dapr:\\1:${DAPR_JAVA_SDK_VERSION}')/g" README.md
fi

rm -rf docs
./mvnw -Dmaven.test.skip=true -Djacoco.skip=true clean install
./mvnw -Dmaven.test.skip=true -Djacoco.skip=true site-deploy


================================================
FILE: .github/scripts/update_sdk_version.sh
================================================
#!/bin/bash

set -uex

DAPR_JAVA_SDK_VERSION=$1

# Alpha artifacts of the sdk tracks the regular SDK minor and patch versions, just not the major.
# Replaces the SDK major version to 0 for alpha artifacts.
DAPR_JAVA_SDK_ALPHA_VERSION=`echo $DAPR_JAVA_SDK_VERSION | sed 's/^[0-9]*\./0./'`

mvn versions:set -DnewVersion=$DAPR_JAVA_SDK_VERSION -DprocessDependencies=true
mvn versions:set-property -Dproperty=dapr.sdk.alpha.version -DnewVersion=$DAPR_JAVA_SDK_ALPHA_VERSION
mvn versions:set-property -Dproperty=dapr.sdk.version -DnewVersion=$DAPR_JAVA_SDK_VERSION
mvn versions:set-property -Dproperty=dapr.sdk.version -DnewVersion=$DAPR_JAVA_SDK_VERSION -f sdk-tests/pom.xml
# BOMs are standalone (no parent), so versions:set skips them — update explicitly.
mvn versions:set -DnewVersion=$DAPR_JAVA_SDK_VERSION -f sdk-bom/pom.xml
mvn versions:set-property -Dproperty=dapr.sdk.version -DnewVersion=$DAPR_JAVA_SDK_VERSION -f sdk-bom/pom.xml
mvn versions:set -DnewVersion=$DAPR_JAVA_SDK_VERSION -f dapr-spring/dapr-spring-bom/pom.xml
mvn versions:set-property -Dproperty=dapr.sdk.version -DnewVersion=$DAPR_JAVA_SDK_VERSION -f dapr-spring/dapr-spring-bom/pom.xml
mvn versions:set-property -Dproperty=dapr.sdk.alpha.version -DnewVersion=$DAPR_JAVA_SDK_ALPHA_VERSION -f sdk-tests/pom.xml


git clean -f


================================================
FILE: .github/workflows/automerge-bot.yml
================================================
# Copyright 2021 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: dapr-java-sdk-automerge-bot

on:
  schedule:
    - cron: '*/30 * * * *'
  workflow_dispatch:
jobs:
  automerge:
    if: github.repository_owner == 'dapr'
    name: Automerge and update PRs.
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v5
      - name: Install dependencies
        run: pip install PyGithub
      - name: Automerge and update
        env:
          GITHUB_TOKEN: ${{ secrets.DAPR_BOT_TOKEN }}
        run: python ./.github/scripts/automerge.py


================================================
FILE: .github/workflows/backport.yaml
================================================
#
# Copyright 2026 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: Backport
on:
  pull_request_target:
    types:
      - closed
      - labeled

jobs:
  backport:
    name: Backport
    runs-on: ubuntu-latest
    if: >
      github.event.pull_request.merged
      && (
        github.event.action == 'closed'
        || (
          github.event.action == 'labeled'
          && contains(github.event.label.name, 'backport')
        )
      )
    steps:
      - uses: tibdex/backport@9565281eda0731b1d20c4025c43339fb0a23812e
        with:
          github_token: ${{ secrets.DAPR_BOT_TOKEN }}


================================================
FILE: .github/workflows/build.yml
================================================
name: Build

on:
  workflow_dispatch:
  push:
    branches:
      - master
      - release-*
    tags:
      - v*

  pull_request:
    branches:
    - master
    - release-*

jobs:
  test:
    name: "Unit tests"
    runs-on: ubuntu-latest
    timeout-minutes: 30
    continue-on-error: false
    env:
      JDK_VER: 17
    steps:
      - uses: actions/checkout@v5
      - name: Set up OpenJDK ${{ env.JDK_VER }}
        uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: ${{ env.JDK_VER }}
      - name: Run tests
        run: ./mvnw clean install -B -q -DskipITs=true
      - name: Codecov
        uses: codecov/codecov-action@v6.0.0
        with:
          token: ${{  secrets.CODECOV_TOKEN  }}
      - name: Upload test report for sdk
        uses: actions/upload-artifact@v7
        with:
          name: test-dapr-java-sdk-jdk${{ env.JDK_VER }}
          path: sdk/target/jacoco-report/
      - name: Upload test report for sdk-actors
        uses: actions/upload-artifact@v7
        with:
          name: report-dapr-java-sdk-actors-jdk${{ env.JDK_VER }}
          path: sdk-actors/target/jacoco-report/

  build-durabletask:
    name: "Durable Task build & tests"
    runs-on: ubuntu-latest
    timeout-minutes: 30
    continue-on-error: false
    env:
      JDK_VER: 17
    steps:
    - uses: actions/checkout@v5
    - name: Set up OpenJDK ${{ env.JDK_VER }}
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: ${{ env.JDK_VER }}
    - name: Checkout Durable Task Sidecar
      uses: actions/checkout@v4
      with:
        repository: dapr/durabletask-go
        path: durabletask-sidecar

    # TODO: Move the sidecar into a central image repository
    - name: Initialize Durable Task Sidecar
      run: docker run -d --name durabletask-sidecar -p 4001:4001 --rm -i $(docker build -q ./durabletask-sidecar)

    - name: Display Durable Task Sidecar Logs
      run: nohup docker logs --since=0 durabletask-sidecar > durabletask-sidecar.log 2>&1 &

      # wait for 10 seconds, so sidecar container can be fully up, this will avoid intermittent failing issues for integration tests causing by failed to connect to sidecar
    - name: Wait for 10 seconds
      run: sleep 10

    - name: Integration Tests For Durable Tasks
      run: ./mvnw -B -pl durabletask-client -Pintegration-tests dependency:copy-dependencies verify || echo "TEST_FAILED=true" >> $GITHUB_ENV
      continue-on-error: true

    - name: Kill Durable Task Sidecar
      run: docker kill durabletask-sidecar

    - name: Upload Durable Task Sidecar Logs
      uses: actions/upload-artifact@v7
      with:
        name: Durable Task Sidecar Logs
        path: durabletask-sidecar.log

    - name: Fail the job if tests failed
      if: env.TEST_FAILED == 'true'
      run: exit 1

  build:
    name: "Build jdk:${{ matrix.java }} sb:${{ matrix.spring-boot-display-version }} exp:${{ matrix.experimental }}"
    runs-on: ubuntu-latest
    timeout-minutes: 45
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: false
      matrix:
        java: [ 17 ]
        spring-boot-version: [  3.5.4 ]
        spring-boot-display-version: [ 3.5.x ]
        experimental: [ false ]
        include:
          - java: 17
            spring-boot-version: 4.0.2
            spring-boot-display-version: 4.0.x
            experimental: false
    env:
      GOVER: "1.20"
      GOOS: linux
      GOARCH: amd64
      GOPROXY: https://proxy.golang.org
      JDK_VER: ${{ matrix.java }}
      DAPR_CLI_VER: 1.17.0
      DAPR_RUNTIME_VER: 1.17.0
      DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.17.0/install/install.sh
      DAPR_CLI_REF:
      DAPR_REF:
      TOXIPROXY_URL: https://github.com/Shopify/toxiproxy/releases/download/v2.5.0/toxiproxy-server-linux-amd64
    steps:
    - uses: actions/checkout@v5
    - name: Check Docker version
      run: docker version
    - name: Set up OpenJDK ${{ env.JDK_VER }}
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: ${{ env.JDK_VER }}
    - name: Set up Dapr CLI
      run: wget -q ${{ env.DAPR_INSTALL_URL }} -O - | /bin/bash -s ${{ env.DAPR_CLI_VER }}
    - name: Set up Go ${{ env.GOVER }}
      if: env.DAPR_REF != '' || env.DAPR_CLI_REF != ''
      uses: actions/setup-go@v6
      with:
        go-version: ${{ env.GOVER }}
    - name: Checkout Dapr CLI repo to override dapr command.
      uses: actions/checkout@v5
      if: env.DAPR_CLI_REF != ''
      with:
        repository: dapr/cli
        ref: ${{ env.DAPR_CLI_REF }}
        path: cli
    - name: Checkout Dapr repo to override daprd.
      uses: actions/checkout@v5
      if: env.DAPR_REF != ''
      with:
        repository: dapr/dapr
        ref: ${{ env.DAPR_REF }}
        path: dapr
    - name: Build and override dapr cli with referenced commit.
      if: env.DAPR_CLI_REF != ''
      run: |
        cd cli
        make
        sudo cp dist/linux_amd64/release/dapr /usr/local/bin/dapr
        cd ..
    - name: Uninstall Dapr runtime ${{ env.DAPR_RUNTIME_VER }}
      run: dapr uninstall --all
    - name: Ensure Dapr runtime uninstalled
      run: |
        while [ "$(docker ps -aq --filter 'name=^/dapr')" ]; do
          echo "Waiting for Dapr containers to be deleted..."
          sleep 5
        done
        echo "All dapr containers are deleted."
    - name: Initialize Dapr runtime ${{ env.DAPR_RUNTIME_VER }}
      run: dapr init --runtime-version ${{ env.DAPR_RUNTIME_VER }}
    - name: Build and override daprd with referenced commit.
      if: env.DAPR_REF != ''
      run: |
        cd dapr
        make
        mkdir -p $HOME/.dapr/bin/
        cp dist/linux_amd64/release/daprd $HOME/.dapr/bin/daprd
        cd ..
    - name: Override placement service.
      if: env.DAPR_REF != ''
      run: |
        docker stop dapr_placement
        cd dapr
        ./dist/linux_amd64/release/placement &
    - name: Spin local environment
      run: |
        docker compose -f ./sdk-tests/deploy/local-test.yml up -d mongo kafka
        docker ps
    - name: Install local ToxiProxy to simulate connectivity issues to Dapr sidecar
      run: |
        mkdir -p /home/runner/.local/bin
        wget -q ${{ env.TOXIPROXY_URL }} -O /home/runner/.local/bin/toxiproxy-server
        chmod +x /home/runner/.local/bin/toxiproxy-server
        /home/runner/.local/bin/toxiproxy-server --version
    - name: Clean up and install sdk
      run: ./mvnw clean install -B -q -DskipTests
    - name: Integration tests using spring boot 3.x version ${{ matrix.spring-boot-version }}
      id: integration_tests
      if: ${{ matrix.spring-boot-display-version == '3.5.x' }}
      run: PRODUCT_SPRING_BOOT_VERSION=${{ matrix.spring-boot-version }} ./mvnw -B -pl !durabletask-client -Pintegration-tests dependency:copy-dependencies verify
    - name: Integration tests using spring boot 4.x version ${{ matrix.spring-boot-version }}
      id: integration_sb4_tests
      if: ${{ matrix.spring-boot-display-version == '4.0.x' }}
      run: PRODUCT_SPRING_BOOT_VERSION=${{ matrix.spring-boot-version }} ./mvnw -B -pl !durabletask-client -Pintegration-sb4-tests dependency:copy-dependencies verify
    - name: Upload failsafe test report for sdk-tests on failure
      if: ${{ failure() && steps.integration_tests.conclusion == 'failure' }}
      uses: actions/upload-artifact@v7
      with:
        name: failsafe-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }}
        path: sdk-tests/target/failsafe-reports
    - name: Upload failsafe test report for sb4 sdk-tests on failure
      if: ${{ failure() && steps.integration_sb4_tests.conclusion == 'failure' }}
      uses: actions/upload-artifact@v7
      with:
        name: failsafe-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }}
        path: spring-boot-4-sdk-tests/target/failsafe-reports
    - name: Upload surefire test report for sdk-tests on failure
      if: ${{ failure() && steps.integration_tests.conclusion == 'failure' }}
      uses: actions/upload-artifact@v7
      with:
        name: surefire-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }}
        path: sdk-tests/target/surefire-reports
    - name: Upload surefire test report for sdk-tests on failure
      if: ${{ failure() && steps.integration_sb4_tests.conclusion == 'failure' }}
      uses: actions/upload-artifact@v7
      with:
        name: surefire-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }}
        path: spring-boot-4-sdk-tests/target/surefire-reports


  publish:
    runs-on: ubuntu-latest
    needs: [ build, test, build-durabletask ]
    timeout-minutes: 30
    env:
      JDK_VER: 17
      OSSRH_USER_TOKEN: ${{ secrets.OSSRH_USER_TOKEN }}
      OSSRH_PWD_TOKEN: ${{ secrets.OSSRH_PWD_TOKEN }}
      GPG_KEY: ${{ secrets.GPG_KEY }}
      GPG_PWD: ${{ secrets.GPG_PWD }}
    steps:
      - uses: actions/checkout@v5
      - name: Set up OpenJDK ${{ env.JDK_VER }}
        uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ env.JDK_VER }}
      - name: Get pom parent version
        run: |
          PARENT_VERSION=$(./mvnw -B -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
          echo "PARENT_VERSION=$PARENT_VERSION" >> $GITHUB_ENV
      - name: Is SNAPSHOT release ?
        if: contains(github.ref, 'master') && contains(env.PARENT_VERSION, '-SNAPSHOT')
        run: |
          echo "DEPLOY_OSSRH=true" >> $GITHUB_ENV
      - name: Is Release or RC version ?
        if: startswith(github.ref, 'refs/tags/v') && !contains(env.PARENT_VERSION, '-SNAPSHOT')
        run: |
          echo "DEPLOY_OSSRH=true" >> $GITHUB_ENV
      - name: Publish to ossrh
        if: env.DEPLOY_OSSRH == 'true'
        run: |
          echo ${{ secrets.GPG_PRIVATE_KEY }} | base64 -d > private-key.gpg
          export GPG_TTY=$(tty)
          gpg --batch --import private-key.gpg
          ./mvnw -V -B -Dgpg.skip=false -DskipTests -s settings.xml deploy
          curl -X POST https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/io.dapr


================================================
FILE: .github/workflows/create-release.yml
================================================
#
# Copyright 2024 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: Create a release

on:
  workflow_dispatch:
    inputs:
      rel_version:
        description: 'Release version (examples: 1.9.0-rc-1, 1.9.1, 1.11.0-SNAPSHOT)'
        required: true
        type: string

jobs:
  create-release:
    name: Creates release branch and tag
    runs-on: ubuntu-latest
    env:
      JDK_VER: '17'
    steps:
      - name: Check out code
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.DAPR_BOT_TOKEN }}
          persist-credentials: false
      - name: Set up OpenJDK ${{ env.JDK_VER }}
        uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ env.JDK_VER }}
      - name: Install required packages
        run: |
          sudo apt-get update
          sudo apt-get install pcre2-utils
      - name: Create release branch and tag
        env:
          GITHUB_TOKEN: ${{ secrets.DAPR_BOT_TOKEN }}
        run: |
          git config user.email "daprweb@microsoft.com"
          git config user.name "Dapr Bot"
          # Update origin with token
          git remote set-url origin https://x-access-token:${{ secrets.DAPR_BOT_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git
          # Copy first to allow automation to use the latest version and not the release branch's version.
          cp -R ./.github/scripts ${RUNNER_TEMP}/
          ${RUNNER_TEMP}/scripts/create-release.sh ${{ inputs.rel_version }}
      - name: Create GitHub Release with auto-generated notes
        if: ${{ !endsWith(inputs.rel_version, '-SNAPSHOT') && !contains(inputs.rel_version, '-rc-') }}
        env:
          GITHUB_TOKEN: ${{ secrets.DAPR_BOT_TOKEN }}
          REL_VERSION: ${{ inputs.rel_version }}
        run: |
          # Normalize release version by stripping an optional leading 'v'
          REL_VERSION="${REL_VERSION#v}"
          TAG="v${REL_VERSION}"
          if gh release view "${TAG}" >/dev/null 2>&1; then
            echo "Release ${TAG} already exists, skipping creation."
          else
            gh release create "${TAG}" --generate-notes
          fi

================================================
FILE: .github/workflows/dapr_bot.yml
================================================
name: dapr-bot

on:
  issue_comment: {types: created}

jobs:
  daprbot:
    name: bot-processor
    runs-on: ubuntu-latest
    steps:
      - name: Comment analyzer
        uses: actions/github-script@v9
        with:
          github-token: ${{secrets.DAPR_BOT_TOKEN}}
          script: |
            const payload = context.payload;
            const issue = context.issue;
            const isFromPulls = !!payload.issue.pull_request;
            const commentBody = payload.comment.body;

            if (!isFromPulls && commentBody && commentBody.indexOf("/assign") == 0) {
              if (!issue.assignees || issue.assignees.length === 0) {
                // See https://github.com/actions/github-script#breaking-changes-in-v5
                await github.rest.issues.addAssignees({
                  owner: issue.owner,
                  repo: issue.repo,
                  issue_number: issue.number,
                  assignees: [context.actor],
                })
              }
              return;
            }

================================================
FILE: .github/workflows/fossa.yml
================================================
#
# Copyright 2021 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: fossa
on:
  push:
    branches:
      - master
      - release-*
    tags:
      - v*
  pull_request:
    branches:
      - master
      - release-*
  workflow_dispatch: {}
jobs:
  fossa-scan:
    if: github.repository_owner == 'dapr' # FOSSA is not intended to run on forks.
    runs-on: ubuntu-latest
    env:
      FOSSA_API_KEY: b88e1f4287c3108c8751bf106fb46db6 # This is a push-only token that is safe to be exposed.
    steps:
      - name: "Checkout code"
        uses: actions/checkout@v5

      - name: "Run FOSSA Scan"
        uses: fossas/fossa-action@v1.9.0 # Use a specific version if locking is preferred
        with:
          api-key: ${{ env.FOSSA_API_KEY }}

      - name: "Run FOSSA Test"
        uses: fossas/fossa-action@v1.9.0 # Use a specific version if locking is preferred
        with:
          api-key: ${{ env.FOSSA_API_KEY }}
          run-tests: true


================================================
FILE: .github/workflows/validate-docs.yml
================================================
name: Validate Javadocs Generation

on:
  workflow_dispatch:
  push:
    branches:
      - master
      - release-*
    tags:
      - v*

  pull_request:
    branches:
    - master
    - release-*

jobs:
  build:
    name: "Validate Javadocs generation"
    runs-on: linux-arm64-latest-4-cores
    timeout-minutes: 30
    env:
      JDK_VER: 17
    steps:
    - uses: actions/checkout@v5
    - name: Set up OpenJDK ${{ env.JDK_VER }}
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: ${{ env.JDK_VER }}
    - name: Install jars
      run: ./mvnw install -q -B -DskipTests
    - name: Validate Java docs generation
      run: ./mvnw site-deploy


================================================
FILE: .github/workflows/validate.yml
================================================
# Copyright 2021 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Auto Validate Examples

on:
  workflow_dispatch:
  push:
    branches:
      - master
      - release-*
    tags:
      - v*

  pull_request:
    branches:
    - master
    - release-*
jobs:
  validate:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false # Keep running if one leg fails.
      matrix:
        java: [ 17 ]
    env:
      GOVER: "1.20"
      GOOS: linux
      GOARCH: amd64
      GOPROXY: https://proxy.golang.org
      JDK_VER: ${{ matrix.java }}
      DAPR_CLI_VER: 1.17.0
      DAPR_RUNTIME_VER: 1.17.0
      DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.17.0/install/install.sh
      DAPR_CLI_REF:
      DAPR_REF:
    steps:
      - uses: actions/checkout@v5
      - name: Set up OpenJDK ${{ env.JDK_VER }}
        uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ env.JDK_VER }}
      - name: Check Docker version
        run: docker version   
      - name: Set up Dapr CLI
        run: wget -q ${{ env.DAPR_INSTALL_URL }} -O - | /bin/bash -s ${{ env.DAPR_CLI_VER }}
      - name: Set up Go ${{ env.GOVER }}
        if: env.DAPR_REF != '' || env.DAPR_CLI_REF != ''
        uses: actions/setup-go@v6
        with:
          go-version: ${{ env.GOVER }}
      - name: Checkout Dapr CLI repo to override dapr command.
        uses: actions/checkout@v5
        if: env.DAPR_CLI_REF != ''
        with:
          repository: dapr/cli
          ref: ${{ env.DAPR_CLI_REF }}
          path: cli
      - name: Checkout Dapr repo to override daprd.
        uses: actions/checkout@v5
        if: env.DAPR_REF != ''
        with:
          repository: dapr/dapr
          ref: ${{ env.DAPR_REF }}
          path: dapr
      - name: Build and override dapr cli with referenced commit.
        if: env.DAPR_CLI_REF != ''
        run: |
          cd cli
          make
          sudo cp dist/linux_amd64/release/dapr /usr/local/bin/dapr
          cd ..
      - name: Uninstall Dapr runtime ${{ env.DAPR_RUNTIME_VER }}
        run: dapr uninstall --all
      - name: Ensure Dapr runtime uninstalled
        run: |
          while [ "$(docker ps -aq --filter 'name=^/dapr')" ]; do
            echo "Waiting for Dapr containers to be deleted..."
            sleep 5
          done
          echo "All dapr containers are deleted."
      - name: Initialize Dapr runtime ${{ env.DAPR_RUNTIME_VER }}
        run: dapr init --runtime-version ${{ env.DAPR_RUNTIME_VER }}
      - name: Build and override daprd with referenced commit.
        if: env.DAPR_REF != ''
        run: |
          cd dapr
          make
          mkdir -p $HOME/.dapr/bin/
          cp dist/linux_amd64/release/daprd $HOME/.dapr/bin/daprd
          cd ..
      - name: Override placement service.
        if: env.DAPR_REF != ''
        run: |
          docker stop dapr_placement
          cd dapr
          ./dist/linux_amd64/release/placement &
      - name: Install utilities dependencies
        run: |
          echo "PATH=$PATH:$HOME/.local/bin" >> $GITHUB_ENV
          pip3 install setuptools wheel
          pip3 install mechanical-markdown
      - name: Verify scheduler is listening on port.
        run: sleep 30 && docker logs dapr_scheduler && nc -vz localhost 50006
      - name: Install jars
        run: ./mvnw clean install -DskipTests -q
      - name: Validate crypto example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/crypto/README.md
      - name: Validate workflows example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/workflows/README.md
      - name: Validate Spring Boot examples
        working-directory: ./spring-boot-examples
        run: |
          mm.py README.md
      - name: Validate Spring Boot Workflow Patterns examples
        working-directory: ./spring-boot-examples/workflows/patterns
        run: |
          mm.py README.md
      - name: Validate Jobs example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/jobs/README.md
      - name: Validate conversation ai example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/conversation/README.md
      - name: Validate invoke http example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/invoke/http/README.md
      - name: Validate invoke grpc example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/invoke/grpc/README.md
      - name: Validate tracing example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/tracing/README.md
      - name: Validate expection handling example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/exception/README.md
      - name: Validate state example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/state/README.md
      - name: Validate pubsub example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/pubsub/README.md
      - name: Validate bindings HTTP example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/bindings/http/README.md
      - name: Validate secrets example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/secrets/README.md
      - name: Validate unit testing example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/unittesting/README.md
      - name: Validate Configuration API example
        working-directory: ./examples
        run: |
            mm.py ./src/main/java/io/dapr/examples/configuration/README.md
      - name: Validate actors example
        working-directory: ./examples
        run: |
            mm.py ./src/main/java/io/dapr/examples/actors/README.md
      - name: Validate query state HTTP example
        working-directory: ./examples
        run: |
            mm.py ./src/main/java/io/dapr/examples/querystate/README.md
      - name: Validate streaming subscription example
        working-directory: ./examples
        run: |
          mm.py ./src/main/java/io/dapr/examples/pubsub/stream/README.md





================================================
FILE: .gitignore
================================================
# IDE generated files and directories
*.iml
.idea/
.run/
.vs/
.vscode/
.devcontainer/

# Output folders
**/target/

# Compiled class file
*.class

# Proto meta
*.pb.meta

# Log file
*.log
/syslog.txt

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# Eclipse
.classpath
.project
.settings

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# Some other generated folders/files
/docs/dapr-sdk-actors
/docs/dapr-sdk-autogen
/docs/dapr-sdk
/proto/dapr
/proto/daprclient

# macOS
.DS_Store


================================================
FILE: .gitmodules
================================================


================================================
FILE: .java_header
================================================
^/\*$
^ \* Copyright \d\d\d\d The Dapr Authors$
^ \* Licensed under the Apache License, Version 2.0 \(the "License"\)\;$
^ \* you may not use this file except in compliance with the License\.$
^ \* You may obtain a copy of the License at$
^ \*     http://www.apache.org/licenses/LICENSE-2\.0$
^ \* Unless required by applicable law or agreed to in writing, software$
^ \* distributed under the License is distributed on an "AS IS" BASIS,$
^ \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.$
^ \* See the License for the specific language governing permissions and$
^limitations under the License\.$
^\*/$

================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
wrapperVersion=3.3.2
distributionType=script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar


================================================
FILE: .sdkmanrc
================================================
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=17.0.11-tem
maven=3.8.5

================================================
FILE: CODEOWNERS
================================================
# These owners are the maintainers and approvers of this repo
*       @dapr/maintainers-java-sdk @dapr/approvers-java-sdk


================================================
FILE: CONTRIBUTING.md
================================================
# Contribution Guidelines

Thank you for your interest in Dapr!

This project welcomes contributions and suggestions. Most contributions require you to signoff on your commits via 
the Developer Certificate of Origin (DCO). When you submit a pull request, a DCO-bot will automatically determine 
whether you need to provide signoff for your commit. Please follow the instructions provided by DCO-bot, as pull 
requests cannot be merged until the author(s) have provided signoff to fulfill the DCO requirement.
You may find more information on the DCO requirements [below](#developer-certificate-of-origin-signing-your-work).

This project has adopted the [Contributor Covenant Code of Conduct](https://github.com/dapr/community/blob/master/CODE-OF-CONDUCT.md).

Contributions come in many forms: submitting issues, writing code, participating in discussions and community calls.

To learn more about becoming a contributor and the different roles within the Dapr community (Contributor, Approver, Maintainer), please refer to our [Community Membership](https://github.com/dapr/community/blob/master/community-membership.md) documentation.

This document provides the guidelines for how to contribute to the Dapr project.

## Issues

This section describes the guidelines for submitting issues

### Issue Types

There are 4 types of issues:

- Issue/Bug: You've found a bug with the code, and want to report it, or create an issue to track the bug.
- Issue/Discussion: You have something on your mind, which requires input form others in a discussion, before it eventually manifests as a proposal.
- Issue/Proposal: Used for items that propose a new idea or functionality. This allows feedback from others before code is written.
- Issue/Question: Use this issue type, if you need help or have a question.

### Before You File

Before you file an issue, make sure you've checked the following:

1. Is it the right repository?
    - The Dapr project is distributed across multiple repositories. Check the list of [repositories](https://github.com/dapr) if you aren't sure which repo is the correct one.
1. Check for existing issues
    - Before you create a new issue, please do a search in [open issues](https://github.com/dapr/java-sdk/issues) to see if the issue or feature request has already been filed.
    - If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reaction-to-pull-requests-issues-and-comments). Use a reaction:
        - 👍 up-vote
        - 👎 down-vote
1. For bugs
    - Check it's not an environment issue. For example, if running on Kubernetes, make sure prerequisites are in place. (state stores, bindings, etc.)
    - You have as much data as possible. This usually comes in the form of logs and/or stacktrace. If running on Kubernetes or other environment, look at the logs of the Dapr services (runtime, operator, placement service). More details on how to get logs can be found [here](https://docs.dapr.io/operations/troubleshooting/logs-troubleshooting/).
1. For proposals
    - Many changes to the Dapr runtime may require changes to the API. In that case, the best place to discuss the potential feature is the main [Dapr repo](https://github.com/dapr/dapr).
    - Other examples could include bindings, state stores or entirely new components.

## Contributing to Dapr

This section describes the guidelines for contributing code / docs to Dapr.

### Things to consider when adding new API to SDK

1. All the new API's go under [dapr-sdk maven package](https://github.com/dapr/java-sdk/tree/master/sdk)
2. Make sure there is an example talking about how to use the API along with a README with mechanical markdown. [Example](https://github.com/dapr/java-sdk/pull/1235/files#diff-69ed756c4c01fd5fa884aac030dccb8f3f4d4fefa0dc330862d55a6f87b34a14)

#### Mechanical Markdown

Mechanical markdown is used to validate example outputs in our CI pipeline. It ensures that the expected output in README files matches the actual output when running the examples. This helps maintain example output, catches any unintended changes in example behavior, and regressions.

To test mechanical markdown locally:

1. Install the package:
```bash
pip3 install mechanical-markdown
```

2. Run the test from the respective examples README directory, for example:
```bash
cd examples
mm.py ./src/main/java/io/dapr/examples/workflows/README.md
```

The test will:
- Parse the STEP markers in the README
- Execute the commands specified in the markers
- Compare the actual output with the expected output
- Report any mismatches

When writing STEP markers:
- Use `output_match_mode: substring` for flexible matching
- Quote strings containing special YAML characters (like `:`, `*`, `'`)
- Set appropriate timeouts for long-running examples

Example STEP marker:
```yaml
<!-- STEP
name: Run example
output_match_mode: substring
expected_stdout_lines:
  - "Starting workflow: io.dapr.examples.workflows.compensation.BookTripWorkflow"
  ...
background: true
timeout_seconds: 60
-->
```

### Pull Requests

All contributions come through pull requests. To submit a proposed change, we recommend following this workflow:

1. Make sure there's an issue (bug or proposal) raised, which sets the expectations for the contribution you are about to make.
2. Fork the relevant repo and create a new branch
3. Create your change
    - Code changes require tests
4. Update relevant documentation for the change
5. Check the code style
6. Commit and open a PR
7. Wait for the CI process to finish and make sure all checks are green
8. A maintainer of the project will be assigned, and you can expect a review within a few days
9. All the files have the Copyright header.

### Configure the code style with checkstyle

The project contains a checkstyle file (`checkstyle.xml`) that must be used for formatting the code.

* IntelliJ IDEA
   You can use [CheckStyle-IDEA plugin](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea).
* VSCode
   You can use [Checkstyle for Java](https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-checkstyle).
* Eclipse
  You can use [Eclipse Checkstyle Plugin](https://checkstyle.org/eclipse-cs/#!/)

#### Use work-in-progress PRs for early feedback

A good way to communicate before investing too much time is to create a "Work-in-progress" PR and share it with your reviewers. The standard way of doing this is to add a "[WIP]" prefix in your PR's title and assign the **do-not-merge** label. This will let people looking at your PR know that it is not well baked yet.

### Developer Certificate of Origin: Signing your work

#### Every commit needs to be signed

The Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the [DCO](https://developercertificate.org/), reformatted for readability:
```
By making a contribution to this project, I certify that:

    (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

    (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

    (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

    (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
```

Contributors sign-off that they adhere to these requirements by adding a `Signed-off-by` line to commit messages.

```
This is my commit message

Signed-off-by: Random J Developer <random@developer.example.org>
```
Git even has a `-s` command line option to append this automatically to your commit message:
```
$ git commit -s -m 'This is my commit message'
```

Each Pull Request is checked  whether or not commits in a Pull Request do contain a valid Signed-off-by line.

#### I didn't sign my commit, now what?!

No worries - You can easily replay your changes, sign them and force push them!

```
git checkout <branch-name>
git commit --amend --no-edit --signoff
git push --force-with-lease <remote-name> <branch-name>
```

### Use of Third-party code

- All third-party code must be placed in the `vendor/` folder.
- `vendor/` folder is managed by Go modules and stores the source code of third-party Go dependencies. - The `vendor/` folder should not be modified manually.
- Third-party code must include licenses.

A non-exclusive list of code that must be places in `vendor/`:

- Open source, free software, or commercially-licensed code.
- Tools or libraries or protocols that are open source, free software, or commercially licensed.

**Thank You!** - Your contributions to open source, large or small, make projects like this possible. Thank you for taking the time to contribute.

## Github Dapr Bot Commands

Checkout the [daprbot documentation](https://docs.dapr.io/contributing/daprbot/) for Github commands you can run in this repo for common tasks. For example, you can run the `/assign` (as a comment on an issue) to assign the issue to yourself.

## Code of Conduct

This project has adopted the [Contributor Covenant Code of Conduct](https://github.com/dapr/community/blob/master/CODE-OF-CONDUCT.md)


================================================
FILE: LICENSE
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2021 The Dapr Authors.

   and others that have contributed code to the public domain.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Dapr SDK for Java

[![Maven Central](https://img.shields.io/maven-central/v/io.dapr/dapr-sdk.svg?label=Maven%20Central&style=flat)](https://central.sonatype.com/artifact/io.dapr/dapr-sdk) [![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/dapr/java-sdk/.github%2Fworkflows%2Fbuild.yml?branch=master&label=Build&logo=github)](https://github.com/dapr/java-sdk/actions/workflows/build.yml) [![codecov](https://codecov.io/gh/dapr/java-sdk/branch/master/graph/badge.svg)](https://codecov.io/gh/dapr/java-sdk) [![GitHub License](https://img.shields.io/github/license/dapr/java-sdk?style=flat&label=License&logo=github)](https://github.com/dapr/java-sdk/blob/master/LICENSE) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Fdapr%2Fjava-sdk.svg?type=shield)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fdapr%2Fjava-sdk?ref=badge_shield) [![GitHub issue custom search in repo](https://img.shields.io/github/issues-search/dapr/java-sdk?query=type%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22&label=Good%20first%20issues&style=flat&logo=github)](https://github.com/dapr/java-sdk/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) [![Discord](https://img.shields.io/discord/778680217417809931?label=Discord&style=flat&logo=discord)](http://bit.ly/dapr-discord) [![YouTube Channel Views](https://img.shields.io/youtube/channel/views/UCtpSQ9BLB_3EXdWAUQYwnRA?style=flat&label=YouTube%20views&logo=youtube)](https://youtube.com/@daprdev) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/daprdev?logo=x&style=flat)](https://twitter.com/daprdev)

This is the Dapr SDK for Java, including the following features:

* PubSub
* Service Invocation
* Binding
* State Store
* Actors
* Workflows

## Getting Started

### Architecture Overview

The diagram below shows how a Java application interacts with the Dapr runtime through the Java SDK:

```mermaid
flowchart LR
    A[End User Application] -->|HTTP or gRPC| B[Dapr Java SDK]
    B -->|Dapr API calls| C[Dapr Sidecar]
    C -->|Components| D[State Stores, Pub/Sub, Services, etc.]

    %% Optional grouping for clarity
    subgraph R[Dapr Runtime]
        C
        D
    end
```

For the full list of available APIs, see the [Dapr API reference](https://docs.dapr.io/reference/api/)

### Pre-Requisites
* SDKMAN! installed (recommended):
    * [SDKMAN!](https://sdkman.io)
* Java IDE installed:
    * [IntelliJ](https://www.jetbrains.com/idea/download/)
    * [Eclipse](https://www.eclipse.org/downloads/)
    * [Apache NetBeans](https://netbeans.apache.org/download/index.html)
    * [Visual Studio Code](https://code.visualstudio.com/Download)
    * Any other IDE for Java that you prefer.
* Install one of the following build tools for Java:
    * [Maven 3.x](https://maven.apache.org/install.html)
    * [Gradle 6.x](https://gradle.org/install/)
* If needed, install the corresponding plugin for the build tool in your IDE, for example:
    * [Maven in IntelliJ](https://www.jetbrains.com/help/idea/maven.html)
    * [Gradle in IntelliJ](https://www.jetbrains.com/help/idea/gradle-settings.html)
    * [Maven in Eclipse with m2e](https://projects.eclipse.org/projects/technology.m2e)
    * [Gradle in Eclipse with Buildship](https://projects.eclipse.org/projects/tools.buildship)
* An existing Java Maven or Gradle project. You may also start a new project via one of the options below:
    * [New Maven project in IntelliJ](https://www.jetbrains.com/help/idea/maven-support.html#create_new_maven_project)
    * [Maven in 5 minutes](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)
    * [Install toxiproxy-server binary](https://github.com/Shopify/toxiproxy/releases)

### Install JDK

If using [SDKMAN!](https://sdkman.io), execute `sdk env install` to install the required JDK.

### Importing Dapr's Java SDK

#### Using a BOM (recommended)

Two BOMs are published:

- **`io.dapr:dapr-sdk-bom`** — core SDK modules (`dapr-sdk`, `dapr-sdk-actors`, `dapr-sdk-workflows`, `dapr-sdk-autogen`, `durabletask-client`, `testcontainers-dapr`) plus security-patched transitive dependencies (Netty, Jackson, commons-compress, commons-codec).
- **`io.dapr.spring:dapr-spring-bom`** — Spring-specific modules (`dapr-sdk-springboot`, `dapr-spring-*`). Imports `dapr-sdk-bom` transitively, so Spring users only need this single BOM.

Pick the one that matches your project. Importing a BOM ensures you inherit security fixes for transitive dependencies like the Netty CVEs.

##### Core (non-Spring) projects

For Maven:
```xml
<project>
  ...
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.dapr</groupId>
        <artifactId>dapr-sdk-bom</artifactId>
        <version>1.18.0</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- Dapr's core SDK with all features, except Actors. -->
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk</artifactId>
    </dependency>
    <!-- Dapr's SDK for Actors (optional). -->
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk-actors</artifactId>
    </dependency>
  </dependencies>
  ...
</project>
```

For Gradle:
```groovy
dependencies {
    implementation platform('io.dapr:dapr-sdk-bom:1.18.0')

    // Dapr's core SDK with all features, except Actors.
    implementation 'io.dapr:dapr-sdk'
    // Dapr's SDK for Actors (optional).
    implementation 'io.dapr:dapr-sdk-actors'
}
```

##### Spring Boot projects

For Maven:
```xml
<project>
  ...
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-bom</artifactId>
        <version>1.18.0</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- Dapr's SDK integration with Spring Boot. -->
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk-springboot</artifactId>
    </dependency>
    <!-- Optional Spring Boot starter. -->
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-boot-starter</artifactId>
    </dependency>
  </dependencies>
  ...
</project>
```

For Gradle:
```groovy
dependencies {
    implementation platform('io.dapr.spring:dapr-spring-bom:1.18.0')

    // Dapr's SDK integration with Spring Boot.
    implementation 'io.dapr:dapr-sdk-springboot'
    // Optional Spring Boot starter.
    implementation 'io.dapr.spring:dapr-spring-boot-starter'
}
```

#### Without the BOM

If you prefer to manage versions manually, specify the version on each dependency:

For Maven:
```xml
<project>
  ...
  <dependencies>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk</artifactId>
      <version>1.17.2</version>
    </dependency>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk-actors</artifactId>
      <version>1.17.2</version>
    </dependency>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk-springboot</artifactId>
      <version>1.17.2</version>
    </dependency>
  </dependencies>
  ...
</project>
```

For Gradle:
```groovy
dependencies {
    implementation 'io.dapr:dapr-sdk:1.17.2'
    implementation 'io.dapr:dapr-sdk-actors:1.17.2'
    implementation 'io.dapr:dapr-sdk-springboot:1.17.2'
}
```

### Running the examples
Clone this repository including the submodules:

```sh
git clone https://github.com/dapr/java-sdk.git
```

Then head over to build the [Maven](https://maven.apache.org/install.html) (Apache Maven version 3.x) project:

```sh
# make sure you are in the `java-sdk` directory.
./mvnw clean install
```

Try the following examples to learn more about Dapr's Java SDK:
* [Invoking a Http service](./examples/src/main/java/io/dapr/examples/invoke/http)
* [Invoking a Grpc service](./examples/src/main/java/io/dapr/examples/invoke/grpc)
* [State management](./examples/src/main/java/io/dapr/examples/state)
* [PubSub with subscriber](./examples/src/main/java/io/dapr/examples/pubsub/)
* [PubSub with streaming subscription](./examples/src/main/java/io/dapr/examples/pubsub/stream/)
* [Binding with input over Http](./examples/src/main/java/io/dapr/examples/bindings/http)
* [Actors](./examples/src/main/java/io/dapr/examples/actors/)
* [Workflows](./examples/src/main/java/io/dapr/examples/workflows/)
* [Secrets management](./examples/src/main/java/io/dapr/examples/secrets)
* [Configuration](./examples/src/main/java/io/dapr/examples/configuration)
* [Distributed tracing with OpenTelemetry SDK](./examples/src/main/java/io/dapr/examples/tracing)
* [Exception handling](./examples/src/main/java/io/dapr/examples/exception)
* [Unit testing](./examples/src/main/java/io/dapr/examples/unittesting)

### Running Spring Boot examples

The Spring Boot integration for Dapr use [Testcontainers](https://testcontainers.com) to set up a local environment development flow that doesn't 
require the use of the `dapr` CLI and it integrates with the Spring Boot programming model. 

You can find a [step-by-step tutorial showing this integration here](./spring-boot-examples/README.md).

### API Documentation

Please, refer to our [Javadoc](https://dapr.github.io/java-sdk/) website.

### Reactor API

The Java SDK for Dapr is built using [Project Reactor](https://projectreactor.io/). It provides an asynchronous API for Java. A result is consumed synchronously by using the `block()` method, as shown in the examples referenced above.

The code below does not make any API call, it simply returns the [Mono](https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html) publisher object. Nothing happens until the application subscribes or blocks on the result:

```java
Mono<Void> result = daprClient.publishEvent("mytopic", "my message");
```

To start execution and receive the result object synchronously (`void` or `Void` becomes an empty result), use `block()`. The code below shows how to execute the call and consume an empty response:
```java
Mono<Void> result = daprClient.publishEvent("mytopic", "my message");
result.block();
```

### How to use a custom serializer

This SDK provides a basic serialization for request/response objects, and state objects. Applications should provide their own serialization for production scenarios.

1. Implement the [DaprObjectSerializer](https://dapr.github.io/java-sdk/io/dapr/serializer/DaprObjectSerializer.html) interface. See [this class](sdk-actors/src/test/java/io/dapr/actors/runtime/JavaSerializer.java) as an example.
2. Use your serializer class in the following scenarios:
    * When building a new instance of [DaprClient](https://dapr.github.io/java-sdk/io/dapr/client/DaprClient.html):
    ```java
    DaprClient client = (new DaprClientBuilder())
        .withObjectSerializer(new MyObjectSerializer()) // for request/response objects.
        .withStateSerializer(new MyStateSerializer()) // for state objects.
        .build();
    ```
    * When registering an Actor Type:
    ```java
    ActorRuntime.getInstance().registerActor(
      DemoActorImpl.class,
      new MyObjectSerializer(), // for request/response objects.
      new MyStateSerializer()); // for state objects.
    ```
    * When building a new instance of [ActorProxy](https://dapr.github.io/java-sdk/io/dapr/actors/client/ActorProxy.html) to invoke an Actor instance, use the same serializer as when registering the Actor Type:
    ```java
    try (ActorClient actorClient = new ActorClient()) {
      DemoActor actor = (new ActorProxyBuilder(DemoActor.class, actorClient))
          .withObjectSerializer(new MyObjectSerializer()) // for request/response objects.
          .build(new ActorId("100"));
    }
    ```


### Debug a Java application or Dapr's Java SDK

**In IntelliJ Community Edition, consider [debugging in IntelliJ](https://docs.dapr.io/developing-applications/local-development/ides/intellij/).**

**In Visual Studio Code, consider [debugging in Visual Studio Code](https://docs.dapr.io/developing-applications/local-development/ides/vscode/).**

If you need to debug your Application, run the Dapr sidecar separately, and then start the application from your IDE (IntelliJ or Eclipse, for example).
For Linux and MacOS:

```sh
dapr run --app-id testapp --app-port 3000 --dapr-http-port 3500 --dapr-grpc-port 5001
```

> Note: confirm the correct port that the app will listen to and that the Dapr ports above are free, changing the ports if necessary.

When running your Java application from your IDE, make sure the following environment variables are set, so the Java SDK knows how to connect to Dapr's sidecar:
```
DAPR_HTTP_PORT=3500
DAPR_GRPC_PORT=5001
```

Now you can go to your IDE and debug your Java application, using port `3500` to call Dapr while also listening to port `3000` to expose Dapr's callback endpoint.

### Exception handling

Most exceptions thrown from the SDK are instances of `DaprException`. `DaprException` extends from `RuntimeException`, making it compatible with Project Reactor. See the [exception example](./examples/src/main/java/io/dapr/examples/exception) for more details.

## Development

### Update URL to fetch proto files

Change the `dapr.proto.baseurl` property below in [pom.xml](./pom.xml) to point to the URL for the desired commit hash in Git if you need to target a proto file that is not been merged into master yet. 

Note: You may need to run `./mvnw clean` after changing this setting to remove any auto-generated files so that the new proto files get downloaded and compiled.

```xml
<project>
  ...
  <properties>
    ...
    <!-- change this .... -->
    <dapr.proto.baseurl>https://raw.githubusercontent.com/dapr/dapr/(current ref in pom.xml)/dapr/proto</dapr.proto.baseurl>
    <!-- to something like this: -->
    <dapr.proto.baseurl>https://raw.githubusercontent.com/dapr/dapr/1ac5d0e8590a7d6772c9957c236351ed992ccb19/dapr/proto</dapr.proto.baseurl>
    ...
  </properties>
  ...
</project>
```

### Running Integration Tests (ITs)

#### Pre-Requisites
* [Pre-Requisites for the SDK](#pre-requisites)
* Docker installed 
  * [Docker Compose](https://docs.docker.com/compose/install/) 
  * [Docker Desktop](https://www.docker.com/products/docker-desktop)
* Bash shell
  * In Windows use [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install)
  * In Linux and Mac, default shells are enough

#### Code

The code for the tests are present inside the project [sdk-tests](./sdk-tests). This module alone can be imported as a separate project in IDEs. 
This project depends on the rest of the JARs built by the other modules in the repo like [sdk](./sdk), [sdk-springboot](./sdk-springboot) etc.

As a starting point for running the Integration Tests, first run `./mvnw clean install` from the root of the repo to build the JARs for the different modules, except the `sdk-tests` module.

#### Run all the dependent services spun up during build

During normal CI build, docker compose is used to bring up services like MongoDB, Hashicorp Vault, Apache Zookeeper, Kafka etc. 

Similarly, all of these need to be run for running the ITs either individually or as a whole.

Run the following commands from the root of the repo to start all the docker containers that the tests depend on.

```bash
docker compose -f ./sdk-tests/deploy/local-test.yml up -d
```

To stop the containers and services, run the following commands.

```bash
docker compose -f ./sdk-tests/deploy/local-test.yml down
```


#### Run all ITs from command line
From the `java-sdk` repo root, change to the `sdk-tests` directory and run the following command.

```bash
## with current directory as /java-sdk/sdk-tests/

../mvnw clean install
```

The above command runs all the integration tests present in the `sdk-tests` project. 

#### Run Individual tests from IntelliJ

In IntelliJ, go to `File > New > Project from Existing Sources...`. Import the `sdk-tests` project. 

Once the project has been imported, the individual tests can be run normally as any Unit Tests, from the IDE itself.

![intellij-integration-test](./examples/src/main/resources/img/intellij-integration-test.png).

> Sometimes when the `sdk-tests` project does not build correctly, try `File > Invalidate Caches...`  and try restarting IntelliJ.

You should be able to set breakpoints and Debug the test directly from IntelliJ itself as seen from the above image. 

================================================
FILE: checkstyle.xml
================================================
<?xml version="1.0"?>
<!--
  Copyright 2021 The Dapr Authors
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->

<!DOCTYPE module PUBLIC
        "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
        "https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--
   Checkstyle configuration that checks the Google coding conventions from Google Java Style
   that can be found at https://google.github.io/styleguide/javaguide.html

   Checkstyle is very configurable. Be sure to read the documentation at
   http://checkstyle.sf.net (or in your downloaded distribution).

   To completely disable a check, just comment it out or delete it from the file.

   Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
-->

<module name="Checker">
    <property name="charset" value="UTF-8"/>

    <property name="severity" value="warning"/>

    <property name="fileExtensions" value="java, properties, xml"/>
    <!-- Excludes all 'module-info.java' files              -->
    <!-- See https://checkstyle.org/config_filefilters.html -->
    <module name="BeforeExecutionExclusionFileFilter">
        <property name="fileNamePattern" value="module\-info\.java$"/>
    </module>
    <!-- Checks for whitespace                               -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="FileTabCharacter">
        <property name="eachLine" value="true"/>
    </module>

    <module name="LineLength">
        <property name="fileExtensions" value="java"/>
        <property name="max" value="120"/>
        <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
    </module>

    <module name="RegexpHeader">
        <property name="fileExtensions" value="java"/>
    </module>

    <module name="TreeWalker">
        <module name="OuterTypeFilename"/>
        <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format"
                      value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message"
                      value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
        </module>
        <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <property name="allowByTailComment" value="true"/>
            <property name="allowNonPrintableEscapes" value="true"/>
        </module>
        <module name="AvoidStarImport"/>
        <module name="OneTopLevelClass"/>
        <module name="NoLineWrap"/>
        <module name="EmptyBlock">
            <property name="option" value="TEXT"/>
            <property name="tokens"
                      value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
        </module>
        <module name="NeedBraces"/>
        <module name="LeftCurly"/>
        <module name="RightCurly">
            <property name="id" value="RightCurlySame"/>
            <property name="tokens"
                      value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
                    LITERAL_DO"/>
        </module>
        <module name="RightCurly">
            <property name="id" value="RightCurlyAlone"/>
            <property name="option" value="alone"/>
            <property name="tokens"
                      value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
                    INSTANCE_INIT"/>
        </module>
        <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyLambdas" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="allowEmptyTypes" value="true"/>
            <property name="allowEmptyLoops" value="true"/>
            <message key="ws.notFollowed"
                     value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
            <message key="ws.notPreceded"
                     value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="OneStatementPerLine"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="ArrayTypeStyle"/>
        <module name="MissingSwitchDefault"/>
        <module name="FallThrough"/>
        <module name="UpperEll"/>
        <module name="ModifierOrder"/>
        <module name="EmptyLineSeparator">
            <property name="allowNoEmptyLineBetweenFields" value="true"/>
            <property name="allowMultipleEmptyLines" value="false"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapDot"/>
            <property name="tokens" value="DOT"/>
            <property name="option" value="nl"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapComma"/>
            <property name="tokens" value="COMMA"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
            <property name="id" value="SeparatorWrapEllipsis"/>
            <property name="tokens" value="ELLIPSIS"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
            <property name="id" value="SeparatorWrapArrayDeclarator"/>
            <property name="tokens" value="ARRAY_DECLARATOR"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="SeparatorWrap">
            <property name="id" value="SeparatorWrapMethodRef"/>
            <property name="tokens" value="METHOD_REF"/>
            <property name="option" value="nl"/>
        </module>
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
            <message key="name.invalidPattern"
                     value="Package name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="TypeName">
            <message key="name.invalidPattern"
                     value="Type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MemberName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern"
                     value="Member name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern"
                     value="Parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="LambdaParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern"
                     value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="CatchParameterName">
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern"
                     value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="LocalVariableName">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
            <message key="name.invalidPattern"
                     value="Local variable name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="ClassTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Class type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="MethodTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Method type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="InterfaceTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
                     value="Interface type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="NoFinalizer"/>
        <module name="GenericWhitespace">
            <message key="ws.followed"
                     value="GenericWhitespace ''{0}'' is followed by whitespace."/>
            <message key="ws.preceded"
                     value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
            <message key="ws.illegalFollow"
                     value="GenericWhitespace ''{0}'' should followed by whitespace."/>
            <message key="ws.notPreceded"
                     value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="Indentation">
            <property name="basicOffset" value="2"/>
            <property name="braceAdjustment" value="0"/>
            <property name="caseIndent" value="2"/>
            <property name="throwsIndent" value="4"/>
            <property name="lineWrappingIndentation" value="4"/>
            <property name="arrayInitIndent" value="2"/>
        </module>
        <module name="AbbreviationAsWordInName">
            <property name="ignoreFinal" value="false"/>
            <property name="allowedAbbreviationLength" value="1"/>
        </module>
        <module name="OverloadMethodsDeclarationOrder"/>
        <module name="VariableDeclarationUsageDistance"/>
        <module name="MethodParamPad"/>
        <module name="NoWhitespaceBefore">
            <property name="tokens"
                      value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
            <property name="allowLineBreaks" value="true"/>
        </module>
        <module name="ParenPad"/>
        <module name="OperatorWrap">
            <property name="option" value="NL"/>
            <property name="tokens"
                      value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
                    LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
        </module>
        <module name="AnnotationLocation">
            <property name="id" value="AnnotationLocationMostCases"/>
            <property name="tokens"
                      value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
        </module>
        <module name="AnnotationLocation">
            <property name="id" value="AnnotationLocationVariables"/>
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="allowSamelineMultipleAnnotations" value="true"/>
        </module>
        <module name="NonEmptyAtclauseDescription"/>
        <module name="InvalidJavadocPosition"/>
        <module name="JavadocTagContinuationIndentation"/>
        <module name="SummaryJavadoc">
            <property name="forbiddenSummaryFragments"
                      value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
        </module>
        <module name="JavadocParagraph"/>
        <module name="AtclauseOrder">
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
            <property name="target"
                      value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        <module name="JavadocMethod">
            <property name="accessModifiers" value="public"/>
            <property name="allowedAnnotations" value="Override, Test"/>
        </module>
        <module name="MissingJavadocMethod">
            <property name="scope" value="public"/>
            <property name="minLineCount" value="2"/>
            <property name="allowedAnnotations" value="Override, Test"/>
        </module>
        <module name="MethodName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
            <message key="name.invalidPattern"
                     value="Method name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="SingleLineJavadoc">
            <property name="ignoreInlineTags" value="false"/>
        </module>
        <module name="EmptyCatchBlock">
            <property name="exceptionVariableName" value="expected"/>
        </module>
        <module name="CommentsIndentation"/>

        <module name="ImportOrder">
            <property name="groups" value="*,javax,java"/>
            <property name="ordered" value="true"/>
            <property name="separated" value="true"/>
            <property name="option" value="bottom"/>
            <property name="sortStaticImportsAlphabetically" value="true"/>
        </module>
        <module name="SuppressionXpathSingleFilter">
            <property name="checks" value="ImportOrder"/>
            <property name="message" value="^'java\..*'.*"/>
        </module>
        <module name="SuppressWarningsHolder"/>
    </module>
    <module name="SuppressWarningsFilter"/>
    <module name="RegexpHeader">
        <property name="headerFile" value="${checkstyle.header.file}"/>
        <property name="fileExtensions" value="java,xml"/>
    </module>
    <module name="SuppressionSingleFilter">
        <property name="checks" value="RegexpHeader"/>
        <property name="files" value=".*\.properties$"/>
    </module>
    <module name="NewlineAtEndOfFile"/>
</module>


================================================
FILE: dapr-spring/dapr-spring-6-data/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.dapr.spring</groupId>
    <artifactId>dapr-spring-parent</artifactId>
    <version>1.18.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dapr-spring-6-data</artifactId>
  <name>dapr-spring-data-6</name>
  <description>Dapr Spring Data 6</description>
  <packaging>jar</packaging>

  <properties>
    <springboot4.version>4.0.5</springboot4.version>
    <!-- Override JUnit version to align with Spring Boot 4.x -->
    <junit-bom.version>6.0.2</junit-bom.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${springboot4.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-keyvalue</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-commons</artifactId>
    </dependency>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/AbstractDaprKeyValueAdapter.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import io.dapr.client.DaprClient;
import io.dapr.client.domain.GetStateRequest;
import io.dapr.client.domain.SaveStateRequest;
import io.dapr.client.domain.State;
import io.dapr.utils.TypeRef;
import org.springframework.data.keyvalue.core.KeyValueAdapter;
import org.springframework.data.util.CloseableIterator;
import org.springframework.util.Assert;
import reactor.core.publisher.Mono;

import java.util.Map;

public abstract class AbstractDaprKeyValueAdapter implements KeyValueAdapter {
  private static final Map<String, String> CONTENT_TYPE_META = Map.of(
      "contentType", "application/json");

  private final DaprClient daprClient;
  private final String stateStoreName;

  protected AbstractDaprKeyValueAdapter(DaprClient daprClient, String stateStoreName) {
    Assert.notNull(daprClient, "DaprClient must not be null");
    Assert.hasText(stateStoreName, "State store name must not be empty");

    this.daprClient = daprClient;
    this.stateStoreName = stateStoreName;
  }

  @Override
  public void destroy() throws Exception {
    daprClient.close();
  }

  @Override
  public void clear() {
    // Ignore
  }

  @Override
  public Object put(Object id, Object item, String keyspace) {
    Assert.notNull(id, "Id must not be null");
    Assert.notNull(item, "Item must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String key = resolveKey(keyspace, id);
    State<Object> state = new State<>(key, item, null, CONTENT_TYPE_META, null);
    SaveStateRequest request = new SaveStateRequest(stateStoreName).setStates(state);

    daprClient.saveBulkState(request).block();

    return item;
  }

  @Override
  public boolean contains(Object id, String keyspace) {
    return get(id, keyspace) != null;
  }

  @Override
  public Object get(Object id, String keyspace) {
    Assert.notNull(id, "Id must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String key = resolveKey(keyspace, id);

    return resolveValue(daprClient.getState(stateStoreName, key, Object.class));
  }

  @Override
  public <T> T get(Object id, String keyspace, Class<T> type) {
    Assert.notNull(id, "Id must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");
    Assert.notNull(type, "Type must not be null");

    String key = resolveKey(keyspace, id);
    GetStateRequest stateRequest = new GetStateRequest(stateStoreName, key).setMetadata(CONTENT_TYPE_META);

    return resolveValue(daprClient.getState(stateRequest, TypeRef.get(type)));
  }

  @Override
  public Object delete(Object id, String keyspace) {
    Object result = get(id, keyspace);

    if (result == null) {
      return null;
    }

    String key = resolveKey(keyspace, id);

    daprClient.deleteState(stateStoreName, key).block();

    return result;
  }

  @Override
  public <T> T delete(Object id, String keyspace, Class<T> type) {
    T result = get(id, keyspace, type);

    if (result == null) {
      return null;
    }

    String key = resolveKey(keyspace, id);

    daprClient.deleteState(stateStoreName, key).block();

    return result;
  }

  @Override
  public Iterable<Object> getAllOf(String keyspace) {
    return getAllOf(keyspace, Object.class);
  }

  @Override
  public CloseableIterator<Map.Entry<Object, Object>> entries(String keyspace) {
    throw new UnsupportedOperationException("'entries' method is not supported");
  }

  private String resolveKey(String keyspace, Object id) {
    return String.format("%s-%s", keyspace, id);
  }

  private <T> T resolveValue(Mono<State<T>> state) {
    if (state == null) {
      return null;
    }

    return state.blockOptional().map(State::getValue).orElse(null);
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueAdapterResolver.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.dapr.client.DaprClient;
import io.dapr.client.domain.ComponentMetadata;
import io.dapr.client.domain.DaprMetadata;
import org.springframework.data.keyvalue.core.KeyValueAdapter;

import java.util.List;
import java.util.Set;

public class DaprKeyValueAdapterResolver implements KeyValueAdapterResolver {
  private static final Set<String> MYSQL_MARKERS = Set.of("state.mysql-v1", "bindings.mysql-v1");
  private static final Set<String> POSTGRESQL_MARKERS = Set.of("state.postgresql-v1", "bindings.postgresql-v1");
  private final DaprClient daprClient;
  private final ObjectMapper mapper;
  private final String stateStoreName;
  private final String bindingName;

  /**
   * Constructs a {@link DaprKeyValueAdapterResolver}.
   *
   * @param daprClient     The Dapr client.
   * @param mapper         The object mapper.
   * @param stateStoreName The state store name.
   * @param bindingName    The binding name.
   */
  public DaprKeyValueAdapterResolver(DaprClient daprClient, ObjectMapper mapper, String stateStoreName,
                                     String bindingName) {
    this.daprClient = daprClient;
    this.mapper = mapper;
    this.stateStoreName = stateStoreName;
    this.bindingName = bindingName;
  }

  @Override
  public KeyValueAdapter resolve() {
    DaprMetadata metadata = daprClient.getMetadata().block();

    if (metadata == null) {
      throw new IllegalStateException("No Dapr metadata found");
    }

    List<ComponentMetadata> components = metadata.getComponents();

    if (components == null || components.isEmpty()) {
      throw new IllegalStateException("No components found in Dapr metadata");
    }

    if (shouldUseMySQL(components, stateStoreName, bindingName)) {
      return new MySQLDaprKeyValueAdapter(daprClient, mapper, stateStoreName, bindingName);
    }

    if (shouldUsePostgreSQL(components, stateStoreName, bindingName)) {
      return new PostgreSQLDaprKeyValueAdapter(daprClient, mapper, stateStoreName, bindingName);
    }

    throw new IllegalStateException("Could find any adapter matching the given state store and binding");
  }

  @SuppressWarnings("AbbreviationAsWordInName")
  private boolean shouldUseMySQL(List<ComponentMetadata> components, String stateStoreName, String bindingName) {
    boolean stateStoreMatched = components.stream().anyMatch(x -> matchBy(stateStoreName, MYSQL_MARKERS, x));
    boolean bindingMatched = components.stream().anyMatch(x -> matchBy(bindingName, MYSQL_MARKERS, x));

    return stateStoreMatched && bindingMatched;
  }

  @SuppressWarnings("AbbreviationAsWordInName")
  private boolean shouldUsePostgreSQL(List<ComponentMetadata> components, String stateStoreName, String bindingName) {
    boolean stateStoreMatched = components.stream().anyMatch(x -> matchBy(stateStoreName, POSTGRESQL_MARKERS, x));
    boolean bindingMatched = components.stream().anyMatch(x -> matchBy(bindingName, POSTGRESQL_MARKERS, x));

    return stateStoreMatched && bindingMatched;
  }

  private boolean matchBy(String name, Set<String> markers, ComponentMetadata componentMetadata) {
    return componentMetadata.getName().equals(name) && markers.contains(getTypeAndVersion(componentMetadata));
  }

  private String getTypeAndVersion(ComponentMetadata component) {
    return component.getType() + "-" + component.getVersion();
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueTemplate.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.dao.support.PersistenceExceptionTranslator;
import org.springframework.data.domain.Sort;
import org.springframework.data.keyvalue.core.IdentifierGenerator;
import org.springframework.data.keyvalue.core.KeyValueAdapter;
import org.springframework.data.keyvalue.core.KeyValueCallback;
import org.springframework.data.keyvalue.core.KeyValueOperations;
import org.springframework.data.keyvalue.core.KeyValuePersistenceExceptionTranslator;
import org.springframework.data.keyvalue.core.event.KeyValueEvent;
import org.springframework.data.keyvalue.core.mapping.KeyValuePersistentEntity;
import org.springframework.data.keyvalue.core.mapping.KeyValuePersistentProperty;
import org.springframework.data.keyvalue.core.mapping.context.KeyValueMappingContext;
import org.springframework.data.keyvalue.core.query.KeyValueQuery;
import org.springframework.data.mapping.context.MappingContext;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;

public class DaprKeyValueTemplate implements KeyValueOperations, ApplicationEventPublisherAware {

  private static final PersistenceExceptionTranslator DEFAULT_PERSISTENCE_EXCEPTION_TRANSLATOR =
      new KeyValuePersistenceExceptionTranslator();

  private final KeyValueAdapter adapter;
  private final MappingContext<? extends KeyValuePersistentEntity<?, ?>, ? extends KeyValuePersistentProperty<?>>
      mappingContext;
  private final IdentifierGenerator identifierGenerator;

  private PersistenceExceptionTranslator exceptionTranslator = DEFAULT_PERSISTENCE_EXCEPTION_TRANSLATOR;
  private @Nullable ApplicationEventPublisher eventPublisher;
  private boolean publishEvents = false;
  private @SuppressWarnings("rawtypes") Set<Class<? extends KeyValueEvent>> eventTypesToPublish = Collections
      .emptySet();

  /**
   * Create new {@link DaprKeyValueTemplate} using the given {@link KeyValueAdapterResolver} with a default
   * {@link KeyValueMappingContext}.
   *
   * @param resolver must not be {@literal null}.
   */
  public DaprKeyValueTemplate(KeyValueAdapterResolver resolver) {
    this(resolver, new KeyValueMappingContext<>());
  }

  /**
   * Create new {@link DaprKeyValueTemplate} using the given {@link KeyValueAdapterResolver} and {@link MappingContext}.
   *
   * @param resolver       must not be {@literal null}.
   * @param mappingContext must not be {@literal null}.
   */
  @SuppressWarnings("LineLength")
  public DaprKeyValueTemplate(KeyValueAdapterResolver resolver,
                              MappingContext<? extends KeyValuePersistentEntity<?, ?>, ? extends KeyValuePersistentProperty<?>> mappingContext) {
    this(resolver, mappingContext, DefaultIdentifierGenerator.INSTANCE);
  }

  /**
   * Create new {@link DaprKeyValueTemplate} using the given {@link KeyValueAdapterResolver} and {@link MappingContext}.
   *
   * @param resolver            must not be {@literal null}.
   * @param mappingContext      must not be {@literal null}.
   * @param identifierGenerator must not be {@literal null}.
   */
  @SuppressWarnings("LineLength")
  public DaprKeyValueTemplate(KeyValueAdapterResolver resolver,
                              MappingContext<? extends KeyValuePersistentEntity<?, ?>, ? extends KeyValuePersistentProperty<?>> mappingContext,
                              IdentifierGenerator identifierGenerator) {
    Assert.notNull(resolver, "Resolver must not be null");
    Assert.notNull(mappingContext, "MappingContext must not be null");
    Assert.notNull(identifierGenerator, "IdentifierGenerator must not be null");

    this.adapter = resolver.resolve();
    this.mappingContext = mappingContext;
    this.identifierGenerator = identifierGenerator;
  }

  private static boolean typeCheck(Class<?> requiredType, @Nullable Object candidate) {
    return candidate == null || ClassUtils.isAssignable(requiredType, candidate.getClass());
  }

  public void setExceptionTranslator(PersistenceExceptionTranslator exceptionTranslator) {
    Assert.notNull(exceptionTranslator, "ExceptionTranslator must not be null");
    this.exceptionTranslator = exceptionTranslator;
  }

  /**
   * Set the {@link ApplicationEventPublisher} to be used to publish {@link KeyValueEvent}s.
   *
   * @param eventTypesToPublish must not be {@literal null}.
   */
  @SuppressWarnings("rawtypes")
  public void setEventTypesToPublish(Set<Class<? extends KeyValueEvent>> eventTypesToPublish) {
    if (CollectionUtils.isEmpty(eventTypesToPublish)) {
      this.publishEvents = false;
    } else {
      this.publishEvents = true;
      this.eventTypesToPublish = Collections.unmodifiableSet(eventTypesToPublish);
    }
  }

  @Override
  public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
    this.eventPublisher = applicationEventPublisher;
  }

  @Override
  public <T> T insert(T objectToInsert) {
    KeyValuePersistentEntity<?, ?> entity = getKeyValuePersistentEntity(objectToInsert);
    GeneratingIdAccessor generatingIdAccessor = new GeneratingIdAccessor(
        entity.getPropertyAccessor(objectToInsert),
        entity.getIdProperty(),
        identifierGenerator
    );
    Object id = generatingIdAccessor.getOrGenerateIdentifier();

    return insert(id, objectToInsert);
  }

  @Override
  public <T> T insert(Object id, T objectToInsert) {
    Assert.notNull(id, "Id for object to be inserted must not be null");
    Assert.notNull(objectToInsert, "Object to be inserted must not be null");

    String keyspace = resolveKeySpace(objectToInsert.getClass());

    potentiallyPublishEvent(KeyValueEvent.beforeInsert(id, keyspace, objectToInsert.getClass(), objectToInsert));

    execute((KeyValueCallback<Void>) adapter -> {

      if (adapter.contains(id, keyspace)) {
        throw new DuplicateKeyException(
            String.format("Cannot insert existing object with id %s; Please use update", id));
      }

      adapter.put(id, objectToInsert, keyspace);
      return null;
    });

    potentiallyPublishEvent(KeyValueEvent.afterInsert(id, keyspace, objectToInsert.getClass(), objectToInsert));

    return objectToInsert;
  }

  @Override
  public <T> T update(T objectToUpdate) {
    KeyValuePersistentEntity<?, ?> entity = getKeyValuePersistentEntity(objectToUpdate);

    if (!entity.hasIdProperty()) {
      throw new InvalidDataAccessApiUsageException(
          String.format("Cannot determine id for type %s", ClassUtils.getUserClass(objectToUpdate)));
    }

    return update(entity.getIdentifierAccessor(objectToUpdate).getRequiredIdentifier(), objectToUpdate);
  }

  @Override
  public <T> T update(Object id, T objectToUpdate) {
    Assert.notNull(id, "Id for object to be inserted must not be null");
    Assert.notNull(objectToUpdate, "Object to be updated must not be null");

    String keyspace = resolveKeySpace(objectToUpdate.getClass());

    potentiallyPublishEvent(KeyValueEvent.beforeUpdate(id, keyspace, objectToUpdate.getClass(), objectToUpdate));

    Object existing = execute(adapter -> adapter.put(id, objectToUpdate, keyspace));

    potentiallyPublishEvent(
        KeyValueEvent.afterUpdate(id, keyspace, objectToUpdate.getClass(), objectToUpdate, existing));

    return objectToUpdate;
  }

  @Override
  public <T> Optional<T> findById(Object id, Class<T> type) {
    Assert.notNull(id, "Id for object to be found must not be null");
    Assert.notNull(type, "Type to fetch must not be null");

    String keyspace = resolveKeySpace(type);

    potentiallyPublishEvent(KeyValueEvent.beforeGet(id, keyspace, type));

    T result = execute(adapter -> {
      Object value = adapter.get(id, keyspace, type);

      if (value == null || typeCheck(type, value)) {
        return type.cast(value);
      }

      return null;
    });

    potentiallyPublishEvent(KeyValueEvent.afterGet(id, keyspace, type, result));

    return Optional.ofNullable(result);
  }

  @Override
  public void delete(Class<?> type) {
    Assert.notNull(type, "Type to delete must not be null");

    String keyspace = resolveKeySpace(type);

    potentiallyPublishEvent(KeyValueEvent.beforeDropKeySpace(keyspace, type));

    execute((KeyValueCallback<Void>) adapter -> {

      adapter.deleteAllOf(keyspace);
      return null;
    });

    potentiallyPublishEvent(KeyValueEvent.afterDropKeySpace(keyspace, type));
  }

  @SuppressWarnings("unchecked")
  @Override
  public <T> T delete(T objectToDelete) {
    Class<T> type = (Class<T>) ClassUtils.getUserClass(objectToDelete);
    KeyValuePersistentEntity<?, ?> entity = getKeyValuePersistentEntity(objectToDelete);
    Object id = entity.getIdentifierAccessor(objectToDelete).getIdentifier();

    if (id == null) {
      String error = String.format("Cannot determine id for type %s", ClassUtils.getUserClass(objectToDelete));

      throw new InvalidDataAccessApiUsageException(error);
    }

    return delete(id, type);
  }

  @Override
  public <T> T delete(Object id, Class<T> type) {
    Assert.notNull(id, "Id for object to be deleted must not be null");
    Assert.notNull(type, "Type to delete must not be null");

    String keyspace = resolveKeySpace(type);

    potentiallyPublishEvent(KeyValueEvent.beforeDelete(id, keyspace, type));

    T result = execute(adapter -> adapter.delete(id, keyspace, type));

    potentiallyPublishEvent(KeyValueEvent.afterDelete(id, keyspace, type, result));

    return result;
  }

  @Nullable
  @Override
  public <T> T execute(KeyValueCallback<T> action) {
    Assert.notNull(action, "KeyValueCallback must not be null");

    try {
      return action.doInKeyValue(this.adapter);
    } catch (RuntimeException e) {
      throw resolveExceptionIfPossible(e);
    }
  }

  protected <T> T executeRequired(KeyValueCallback<T> action) {
    T result = execute(action);

    if (result != null) {
      return result;
    }

    throw new IllegalStateException(String.format("KeyValueCallback %s returned null value", action));
  }

  @Override
  public <T> Iterable<T> find(KeyValueQuery<?> query, Class<T> type) {
    return executeRequired((KeyValueCallback<Iterable<T>>) adapter -> {
      Iterable<?> result = adapter.find(query, resolveKeySpace(type), type);

      List<T> filtered = new ArrayList<>();

      for (Object candidate : result) {
        if (typeCheck(type, candidate)) {
          filtered.add(type.cast(candidate));
        }
      }

      return filtered;
    });
  }

  @Override
  public <T> Iterable<T> findAll(Class<T> type) {
    Assert.notNull(type, "Type to fetch must not be null");

    return executeRequired(adapter -> {
      Iterable<?> values = adapter.getAllOf(resolveKeySpace(type), type);

      ArrayList<T> filtered = new ArrayList<>();
      for (Object candidate : values) {
        if (typeCheck(type, candidate)) {
          filtered.add(type.cast(candidate));
        }
      }

      return filtered;
    });
  }

  @SuppressWarnings("rawtypes")
  @Override
  public <T> Iterable<T> findAll(Sort sort, Class<T> type) {
    return find(new KeyValueQuery(sort), type);
  }

  @SuppressWarnings("rawtypes")
  @Override
  public <T> Iterable<T> findInRange(long offset, int rows, Class<T> type) {
    return find(new KeyValueQuery().skip(offset).limit(rows), type);
  }

  @SuppressWarnings("rawtypes")
  @Override
  public <T> Iterable<T> findInRange(long offset, int rows, Sort sort, Class<T> type) {
    return find(new KeyValueQuery(sort).skip(offset).limit(rows), type);
  }

  @Override
  public long count(Class<?> type) {
    Assert.notNull(type, "Type for count must not be null");
    return adapter.count(resolveKeySpace(type));
  }

  @Override
  public long count(KeyValueQuery<?> query, Class<?> type) {
    return executeRequired(adapter -> adapter.count(query, resolveKeySpace(type)));
  }

  @Override
  public boolean exists(KeyValueQuery<?> query, Class<?> type) {
    return executeRequired(adapter -> adapter.exists(query, resolveKeySpace(type)));
  }

  @Override
  public MappingContext<?, ?> getMappingContext() {
    return this.mappingContext;
  }

  @Override
  public KeyValueAdapter getKeyValueAdapter() {
    return adapter;
  }

  @Override
  public void destroy() throws Exception {
    this.adapter.destroy();
  }

  private KeyValuePersistentEntity<?, ?> getKeyValuePersistentEntity(Object objectToInsert) {
    return this.mappingContext.getRequiredPersistentEntity(ClassUtils.getUserClass(objectToInsert));
  }

  private String resolveKeySpace(Class<?> type) {
    return this.mappingContext.getRequiredPersistentEntity(type).getKeySpace();
  }

  private RuntimeException resolveExceptionIfPossible(RuntimeException e) {
    DataAccessException translatedException = exceptionTranslator.translateExceptionIfPossible(e);

    return translatedException != null ? translatedException : e;
  }

  @SuppressWarnings("rawtypes")
  private void potentiallyPublishEvent(KeyValueEvent event) {
    if (eventPublisher == null) {
      return;
    }

    if (publishEvents && (eventTypesToPublish.isEmpty() || eventTypesToPublish.contains(event.getClass()))) {
      eventPublisher.publishEvent(event);
    }
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DefaultIdentifierGenerator.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.core.TypeInformation;
import org.springframework.data.keyvalue.core.IdentifierGenerator;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;

/**
 * Default implementation of {@link IdentifierGenerator} to generate identifiers of types {@link UUID}.
 */
enum DefaultIdentifierGenerator implements IdentifierGenerator {

  INSTANCE;

  private final AtomicReference<SecureRandom> secureRandom = new AtomicReference<>(null);

  @Override
  @SuppressWarnings("unchecked")
  public <T> T generateIdentifierOfType(TypeInformation<T> identifierType) {

    Class<?> type = identifierType.getType();

    if (ClassUtils.isAssignable(UUID.class, type)) {
      return (T) UUID.randomUUID();
    } else if (ClassUtils.isAssignable(String.class, type)) {
      return (T) UUID.randomUUID().toString();
    } else if (ClassUtils.isAssignable(Integer.class, type)) {
      return (T) Integer.valueOf(getSecureRandom().nextInt());
    } else if (ClassUtils.isAssignable(Long.class, type)) {
      return (T) Long.valueOf(getSecureRandom().nextLong());
    }

    throw new InvalidDataAccessApiUsageException(
        String.format("Identifier cannot be generated for %s; Supported types are: UUID, String, Integer, and Long",
            identifierType.getType().getName()));
  }

  private SecureRandom getSecureRandom() {

    SecureRandom secureRandom = this.secureRandom.get();
    if (secureRandom != null) {
      return secureRandom;
    }

    for (String algorithm : OsTools.secureRandomAlgorithmNames()) {
      try {
        secureRandom = SecureRandom.getInstance(algorithm);
      } catch (NoSuchAlgorithmException e) {
        // ignore and try next.
      }
    }

    if (secureRandom == null) {
      throw new InvalidDataAccessApiUsageException(
          String.format("Could not create SecureRandom instance for one of the algorithms '%s'",
              StringUtils.collectionToCommaDelimitedString(OsTools.secureRandomAlgorithmNames())));
    }

    this.secureRandom.compareAndSet(null, secureRandom);

    return secureRandom;
  }

  private static class OsTools {

    private static final String OPERATING_SYSTEM_NAME = System.getProperty("os.name").toLowerCase();

    private static final List<String> SECURE_RANDOM_ALGORITHMS_LINUX_OSX_SOLARIS = Arrays.asList("NativePRNGBlocking",
        "NativePRNGNonBlocking", "NativePRNG", "SHA1PRNG");
    private static final List<String> SECURE_RANDOM_ALGORITHMS_WINDOWS = Arrays.asList("SHA1PRNG", "Windows-PRNG");

    static List<String> secureRandomAlgorithmNames() {
      return OPERATING_SYSTEM_NAME.contains("win") ? SECURE_RANDOM_ALGORITHMS_WINDOWS
          : SECURE_RANDOM_ALGORITHMS_LINUX_OSX_SOLARIS;
    }
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/GeneratingIdAccessor.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import org.springframework.data.keyvalue.core.IdentifierGenerator;
import org.springframework.data.mapping.IdentifierAccessor;
import org.springframework.data.mapping.PersistentProperty;
import org.springframework.data.mapping.PersistentPropertyAccessor;
import org.springframework.util.Assert;

/**
 * {@link IdentifierAccessor} adding a {@link #getOrGenerateIdentifier()} to automatically generate an identifier and
 * set it on the underling bean instance.
 *
 * @see #getOrGenerateIdentifier()
 */
class GeneratingIdAccessor implements IdentifierAccessor {

  private final PersistentPropertyAccessor<?> accessor;
  private final PersistentProperty<?> identifierProperty;
  private final IdentifierGenerator generator;

  /**
   * Creates a new {@link GeneratingIdAccessor} using the given {@link PersistentPropertyAccessor}, identifier property
   * and {@link IdentifierGenerator}.
   *
   * @param accessor           must not be {@literal null}.
   * @param identifierProperty must not be {@literal null}.
   * @param generator          must not be {@literal null}.
   */
  GeneratingIdAccessor(PersistentPropertyAccessor<?> accessor, PersistentProperty<?> identifierProperty,
                       IdentifierGenerator generator) {

    Assert.notNull(accessor, "PersistentPropertyAccessor must not be null");
    Assert.notNull(identifierProperty, "Identifier property must not be null");
    Assert.notNull(generator, "IdentifierGenerator must not be null");

    this.accessor = accessor;
    this.identifierProperty = identifierProperty;
    this.generator = generator;
  }

  @Override
  public Object getIdentifier() {
    return accessor.getProperty(identifierProperty);
  }

  Object getOrGenerateIdentifier() {

    Object existingIdentifier = getIdentifier();

    if (existingIdentifier != null) {
      return existingIdentifier;
    }

    Object generatedIdentifier = generator.generateIdentifierOfType(identifierProperty.getTypeInformation());
    accessor.setProperty(identifierProperty, generatedIdentifier);

    return generatedIdentifier;
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/KeyValueAdapterResolver.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import org.springframework.data.keyvalue.core.KeyValueAdapter;

public interface KeyValueAdapterResolver {
  KeyValueAdapter resolve();
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/MySQLDaprKeyValueAdapter.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import com.fasterxml.jackson.core.JsonPointer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.dapr.client.DaprClient;
import io.dapr.utils.TypeRef;
import org.springframework.data.keyvalue.core.query.KeyValueQuery;
import org.springframework.expression.spel.SpelNode;
import org.springframework.expression.spel.standard.SpelExpression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.util.Assert;

import java.util.Base64;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * A {@link org.springframework.data.keyvalue.core.KeyValueAdapter} implementation for MySQL.
 */
@SuppressWarnings("AbbreviationAsWordInName")
public class MySQLDaprKeyValueAdapter extends AbstractDaprKeyValueAdapter {
  private static final String DELETE_BY_KEYSPACE_PATTERN = "delete from state where id LIKE '%s'";
  private static final String SELECT_BY_KEYSPACE_PATTERN = "select value from state where id LIKE '%s'";
  private static final String SELECT_BY_FILTER_PATTERN =
      "select value from state where id LIKE '%s' and JSON_EXTRACT(value, %s) = %s";
  private static final String COUNT_BY_KEYSPACE_PATTERN = "select count(*) as value from state where id LIKE '%s'";
  private static final String COUNT_BY_FILTER_PATTERN =
      "select count(*) as value from state where id LIKE '%s' and JSON_EXTRACT(value, %s) = %s";

  private static final TypeRef<List<JsonNode>> FILTER_TYPE_REF = new TypeRef<>() {
  };
  private static final TypeRef<List<JsonNode>> COUNT_TYPE_REF = new TypeRef<>() {
  };
  private static final SpelExpressionParser PARSER = new SpelExpressionParser();
  private static final JsonPointer VALUE_POINTER = JsonPointer.compile("/value");

  private final DaprClient daprClient;
  private final ObjectMapper mapper;
  private final String stateStoreName;
  private final String bindingName;

  /**
   * Constructs a {@link MySQLDaprKeyValueAdapter}.
   *
   * @param daprClient     The Dapr client.
   * @param mapper         The object mapper.
   * @param stateStoreName The state store name.
   * @param bindingName    The binding name.
   */
  public MySQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapper mapper, String stateStoreName,
                                  String bindingName) {
    super(daprClient, stateStoreName);

    Assert.notNull(mapper, "ObjectMapper must not be null");
    Assert.hasText(bindingName, "State store binding must not be empty");

    this.daprClient = daprClient;
    this.mapper = mapper;
    this.stateStoreName = stateStoreName;
    this.bindingName = bindingName;
  }

  @Override
  public <T> Iterable<T> getAllOf(String keyspace, Class<T> type) {
    Assert.hasText(keyspace, "Keyspace must not be empty");
    Assert.notNull(type, "Type must not be null");

    String sql = createSql(SELECT_BY_KEYSPACE_PATTERN, keyspace);
    List<JsonNode> result = queryUsingBinding(sql, FILTER_TYPE_REF);

    return convertValues(result, type);
  }

  @Override
  public void deleteAllOf(String keyspace) {
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String sql = createSql(DELETE_BY_KEYSPACE_PATTERN, keyspace);

    execUsingBinding(sql);
  }

  @Override
  public <T> Iterable<T> find(KeyValueQuery<?> query, String keyspace, Class<T> type) {
    Assert.notNull(query, "Query must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");
    Assert.notNull(type, "Type must not be null");

    Object criteria = query.getCriteria();

    if (criteria == null) {
      return getAllOf(keyspace, type);
    }

    String sql = createSql(SELECT_BY_FILTER_PATTERN, keyspace, criteria);
    List<JsonNode> result = queryUsingBinding(sql, FILTER_TYPE_REF);

    return convertValues(result, type);
  }

  @Override
  public long count(String keyspace) {
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String sql = createSql(COUNT_BY_KEYSPACE_PATTERN, keyspace);
    List<JsonNode> result = queryUsingBinding(sql, COUNT_TYPE_REF);

    return extractCount(result);
  }

  @Override
  public long count(KeyValueQuery<?> query, String keyspace) {
    Assert.notNull(query, "Query must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");

    Object criteria = query.getCriteria();

    if (criteria == null) {
      return count(keyspace);
    }

    String sql = createSql(COUNT_BY_FILTER_PATTERN, keyspace, criteria);
    List<JsonNode> result = queryUsingBinding(sql, COUNT_TYPE_REF);

    return extractCount(result);
  }

  private String getKeyspaceFilter(String keyspace) {
    return String.format("%s||%s-%%", stateStoreName, keyspace);
  }

  private String createSql(String sqlPattern, String keyspace) {
    String keyspaceFilter = getKeyspaceFilter(keyspace);

    return String.format(sqlPattern, keyspaceFilter);
  }

  private String createSql(String sqlPattern, String keyspace, Object criteria) {
    String keyspaceFilter = getKeyspaceFilter(keyspace);
    SpelExpression expression = PARSER.parseRaw(criteria.toString());
    SpelNode leftNode = expression.getAST().getChild(0);
    SpelNode rightNode = expression.getAST().getChild(1);
    String left = String.format("'$.%s'", leftNode.toStringAST());
    String right = rightNode.toStringAST();

    return String.format(sqlPattern, keyspaceFilter, left, right);
  }

  private void execUsingBinding(String sql) {
    Map<String, String> meta = Map.of("sql", sql);

    daprClient.invokeBinding(bindingName, "exec", null, meta).block();
  }

  private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    Map<String, String> meta = Map.of("sql", sql);

    return daprClient.invokeBinding(bindingName, "query", null, meta, typeRef).block();
  }

  private <T> List<T> convertValues(List<JsonNode> values, Class<T> type) {
    if (values == null || values.isEmpty()) {
      return Collections.emptyList();
    }

    return values.stream()
        .map(value -> convertValue(value, type))
        .collect(Collectors.toList());
  }

  private <T> T convertValue(JsonNode value, Class<T> type) {
    JsonNode valueNode = value.at(VALUE_POINTER);

    if (valueNode.isMissingNode()) {
      throw new IllegalStateException("Value is missing");
    }

    try {
      // The value is stored as a base64 encoded string and wrapped in quotes
      // hence we need to remove the quotes and then decode
      String rawValue = valueNode.toString().replace("\"", "");
      byte[] decodedValue = Base64.getDecoder().decode(rawValue);

      return mapper.readValue(decodedValue, type);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  private long extractCount(List<JsonNode> values) {
    if (values == null || values.isEmpty()) {
      return 0;
    }

    JsonNode valueNode = values.get(0).at(VALUE_POINTER);

    if (valueNode.isMissingNode()) {
      throw new IllegalStateException("Count value is missing");
    }

    if (!valueNode.isNumber()) {
      throw new IllegalStateException("Count value is not a number");
    }

    return valueNode.asLong();
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/PostgreSQLDaprKeyValueAdapter.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.dapr.client.DaprClient;
import io.dapr.spring6.data.repository.query.DaprPredicate;
import io.dapr.utils.TypeRef;
import org.springframework.data.keyvalue.core.query.KeyValueQuery;
import org.springframework.expression.spel.SpelNode;
import org.springframework.expression.spel.standard.SpelExpression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.util.Assert;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * A {@link org.springframework.data.keyvalue.core.KeyValueAdapter} implementation for PostgreSQL.
 */
@SuppressWarnings("AbbreviationAsWordInName")
public class PostgreSQLDaprKeyValueAdapter extends AbstractDaprKeyValueAdapter {
  private static final String DELETE_BY_KEYSPACE_PATTERN = "delete from state where key LIKE '%s'";
  private static final String SELECT_BY_KEYSPACE_PATTERN = "select value from state where key LIKE '%s'";
  private static final String SELECT_BY_FILTER_PATTERN =
      "select value from state where key LIKE '%s' and JSONB_EXTRACT_PATH_TEXT(value, %s) = %s";
  private static final String COUNT_BY_KEYSPACE_PATTERN = "select count(*) as value from state where key LIKE '%s'";
  private static final String COUNT_BY_FILTER_PATTERN =
      "select count(*) as value from state where key LIKE '%s' and JSONB_EXTRACT_PATH_TEXT(value, %s) = %s";

  private static final TypeRef<List<List<Object>>> FILTER_TYPE_REF = new TypeRef<>() {
  };
  private static final TypeRef<List<List<Long>>> COUNT_TYPE_REF = new TypeRef<>() {
  };
  private static final SpelExpressionParser PARSER = new SpelExpressionParser();

  private final DaprClient daprClient;
  private final ObjectMapper mapper;
  private final String stateStoreName;
  private final String bindingName;

  /**
   * Constructs a {@link PostgreSQLDaprKeyValueAdapter}.
   *
   * @param daprClient     The Dapr client.
   * @param mapper         The object mapper.
   * @param stateStoreName The state store name.
   * @param bindingName    The binding name.
   */
  public PostgreSQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapper mapper, String stateStoreName,
                                       String bindingName) {
    super(daprClient, stateStoreName);

    Assert.notNull(mapper, "ObjectMapper must not be null");
    Assert.hasText(bindingName, "State store binding must not be empty");

    this.daprClient = daprClient;
    this.mapper = mapper;
    this.stateStoreName = stateStoreName;
    this.bindingName = bindingName;
  }

  @Override
  public <T> Iterable<T> getAllOf(String keyspace, Class<T> type) {
    Assert.hasText(keyspace, "Keyspace must not be empty");
    Assert.notNull(type, "Type must not be null");

    String sql = createSql(SELECT_BY_KEYSPACE_PATTERN, keyspace);
    List<List<Object>> result = queryUsingBinding(sql, FILTER_TYPE_REF);

    return convertValues(result, type);
  }

  @Override
  public void deleteAllOf(String keyspace) {
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String sql = createSql(DELETE_BY_KEYSPACE_PATTERN, keyspace);

    execUsingBinding(sql);
  }

  @Override
  public <T> Iterable<T> find(KeyValueQuery<?> query, String keyspace, Class<T> type) {
    Assert.notNull(query, "Query must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");
    Assert.notNull(type, "Type must not be null");

    Object criteria = query.getCriteria();

    if (criteria == null) {
      return getAllOf(keyspace, type);
    }

    String sql = createSql(SELECT_BY_FILTER_PATTERN, keyspace, criteria);
    List<List<Object>> result = queryUsingBinding(sql, FILTER_TYPE_REF);

    return convertValues(result, type);
  }

  @Override
  public long count(String keyspace) {
    Assert.hasText(keyspace, "Keyspace must not be empty");

    String sql = createSql(COUNT_BY_KEYSPACE_PATTERN, keyspace);
    List<List<Long>> result = queryUsingBinding(sql, COUNT_TYPE_REF);

    return extractCount(result);
  }

  @Override
  public long count(KeyValueQuery<?> query, String keyspace) {
    Assert.notNull(query, "Query must not be null");
    Assert.hasText(keyspace, "Keyspace must not be empty");

    Object criteria = query.getCriteria();

    if (criteria == null) {
      return count(keyspace);
    }

    String sql = createSql(COUNT_BY_FILTER_PATTERN, keyspace, criteria);
    List<List<Long>> result = queryUsingBinding(sql, COUNT_TYPE_REF);

    return extractCount(result);
  }

  private String getKeyspaceFilter(String keyspace) {
    return String.format("%s||%s-%%", stateStoreName, keyspace);
  }

  private String createSql(String sqlPattern, String keyspace) {
    String keyspaceFilter = getKeyspaceFilter(keyspace);

    return String.format(sqlPattern, keyspaceFilter);
  }

  private String createSql(String sqlPattern, String keyspace, Object criteria) {
    String keyspaceFilter = getKeyspaceFilter(keyspace);

    if (criteria instanceof DaprPredicate) {
      var daprPredicate = (DaprPredicate) criteria;
      String path = daprPredicate.getPath().toString();
      String pathWithOutType = String.format("'%s'", path.substring(path.indexOf(".") + 1));
      String value = String.format("'%s'", daprPredicate.getValue().toString());

      return String.format(sqlPattern, keyspaceFilter, pathWithOutType, value);
    } else if (criteria instanceof String) {
      SpelExpression expression = PARSER.parseRaw(criteria.toString());
      SpelNode leftNode = expression.getAST().getChild(0);
      SpelNode rightNode = expression.getAST().getChild(1);
      String left = String.format("'%s'", leftNode.toStringAST());
      String right = rightNode.toStringAST();

      return String.format(sqlPattern, keyspaceFilter, left, right);
    }

    return null;
  }

  private void execUsingBinding(String sql) {
    Map<String, String> meta = Map.of("sql", sql);

    daprClient.invokeBinding(bindingName, "exec", null, meta).block();
  }

  private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    Map<String, String> meta = Map.of("sql", sql);

    return daprClient.invokeBinding(bindingName, "query", null, meta, typeRef).block();
  }

  private <T> Iterable<T> convertValues(List<List<Object>> values, Class<T> type) {
    if (values == null || values.isEmpty()) {
      return Collections.emptyList();
    }

    return values.stream()
        .flatMap(Collection::stream)
        .map(value -> convertValue(value, type))
        .collect(Collectors.toList());
  }

  private <T> T convertValue(Object value, Class<T> type) {
    try {
      return mapper.convertValue(value, type);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  private long extractCount(List<List<Long>> values) {
    if (values == null || values.isEmpty()) {
      return 0;
    }

    return values.stream()
        .flatMap(Collection::stream)
        .collect(Collectors.toList())
        .get(0);
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoriesRegistrar.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.config;

import org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;

import java.lang.annotation.Annotation;

/**
 * Dapr specific {@link RepositoryBeanDefinitionRegistrarSupport} implementation.
 */
public class DaprRepositoriesRegistrar extends RepositoryBeanDefinitionRegistrarSupport {

  @Override
  protected Class<? extends Annotation> getAnnotation() {
    return EnableDaprRepositories.class;
  }

  @Override
  protected RepositoryConfigurationExtension getExtension() {
    return new DaprRepositoryConfigurationExtension();
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoryConfigurationExtension.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.config;

import org.springframework.data.keyvalue.repository.config.KeyValueRepositoryConfigurationExtension;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;

/**
 * {@link RepositoryConfigurationExtension} for Dapr-based repositories.
 */
@SuppressWarnings("unchecked")
public class DaprRepositoryConfigurationExtension extends KeyValueRepositoryConfigurationExtension {

  @Override
  public String getModuleName() {
    return "Dapr";
  }

  @Override
  protected String getModulePrefix() {
    return "dapr";
  }

  @Override
  protected String getDefaultKeyValueTemplateRef() {
    return "daprKeyValueTemplate";
  }

}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/EnableDaprRepositories.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.config;

import io.dapr.spring6.data.repository.config.DaprRepositoriesRegistrar;
import io.dapr.spring6.data.repository.query.DaprPredicateQueryCreator;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Import;
import org.springframework.data.keyvalue.core.KeyValueOperations;
import org.springframework.data.keyvalue.repository.config.QueryCreatorType;
import org.springframework.data.keyvalue.repository.support.KeyValueRepositoryFactoryBean;
import org.springframework.data.repository.config.DefaultRepositoryBaseClass;
import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Annotation to activate Dapr repositories. If no base package is configured through either {@link #value()},
 * {@link #basePackages()} or {@link #basePackageClasses()} it will trigger scanning of the package of annotated class.
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(DaprRepositoriesRegistrar.class)
@QueryCreatorType(DaprPredicateQueryCreator.class)
public @interface EnableDaprRepositories {

  /**
   * Alias for the {@link #basePackages()} attribute. Allows for more concise annotation declarations e.g.:
   * {@code @EnableJpaRepositories("org.my.pkg")} instead of {@code @EnableJpaRepositories(basePackages="org.my.pkg")}.
   *
   * @return alias of the base package
   */
  String[] value() default {};

  /**
   * Base packages to scan for annotated components. {@link #value()} is an alias for (and mutually exclusive with) this
   * attribute. Use {@link #basePackageClasses()} for a type-safe alternative to String-based package names.
   *
   * @return array of base packages
   */
  String[] basePackages() default {};

  /**
   * Type-safe alternative to {@link #basePackages()} for specifying the packages to scan for annotated components. The
   * package of each class specified will be scanned. Consider creating a special no-op marker class or interface in
   * each package that serves no purpose other than being referenced by this attribute.
   *
   * @return array of base classes
   */
  Class<?>[] basePackageClasses() default {};

  /**
   * Specifies which types are not eligible for component scanning.
   *
   * @return array of exclusion filters
   */
  Filter[] excludeFilters() default {};

  /**
   * Specifies which types are eligible for component scanning. Further narrows the set of candidate components from
   * everything in {@link #basePackages()} to everything in the base packages that matches the given filter or filters.
   *
   * @return array of inclusion filters
   */
  Filter[] includeFilters() default {};

  /**
   * Returns the postfix to be used when looking up custom repository implementations. Defaults to {@literal Impl}. So
   * for a repository named {@code PersonRepository} the corresponding implementation class will be looked up scanning
   * for {@code PersonRepositoryImpl}.
   *
   * @return repository implementation post fix
   */
  String repositoryImplementationPostfix() default "Impl";

  /**
   * Configures the location of where to find the Spring Data named queries properties file.
   *
   * @return named queries location
   */
  String namedQueriesLocation() default "";

  /**
   * Returns the key of the {@link QueryLookupStrategy} to be used for lookup queries for query methods. Defaults to
   * {@link Key#CREATE_IF_NOT_FOUND}.
   *
   * @return key lookup strategy
   */
  Key queryLookupStrategy() default Key.CREATE_IF_NOT_FOUND;

  /**
   * Returns the {@link FactoryBean} class to be used for each repository instance. Defaults to
   * {@link KeyValueRepositoryFactoryBean}.
   *
   * @return repository factory bean class
   */
  Class<?> repositoryFactoryBeanClass() default KeyValueRepositoryFactoryBean.class;

  /**
   * Configure the repository base class to be used to create repository proxies for this particular configuration.
   *
   * @return repository base class
   */
  Class<?> repositoryBaseClass() default DefaultRepositoryBaseClass.class;

  /**
   * Configures the name of the {@link KeyValueOperations} bean to be used with the repositories detected.
   *
   * @return the Key value template bean name
   */
  String keyValueTemplateRef() default "daprKeyValueTemplate";

  /**
   * Configures whether nested repository-interfaces (e.g. defined as inner classes) should be discovered by the
   * repositories infrastructure.
   *
   * @return whether to consider nested repository interfaces
   */
  boolean considerNestedRepositories() default false;
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicate.java
================================================
/*
 * Copyright 2021 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.query;

import org.springframework.beans.BeanWrapper;
import org.springframework.data.core.PropertyPath;
import org.springframework.data.util.DirectFieldAccessFallbackBeanWrapper;
import org.springframework.util.ObjectUtils;

import java.util.function.Function;
import java.util.function.Predicate;

public class DaprPredicate implements Predicate<Object> {

  private final PropertyPath path;
  private final Function<Object, Boolean> check;
  private final Object value;

  public DaprPredicate(PropertyPath path, Object expected) {
    this(path, expected, (valueToCompare) -> ObjectUtils.nullSafeEquals(valueToCompare, expected));
  }

  /**
   * Creates a new {@link DaprPredicate}.
   *
   * @param path  The path to the property to compare.
   * @param value The value to compare.
   * @param check The function to check the value.
   */
  public DaprPredicate(PropertyPath path, Object value, Function<Object, Boolean> check) {
    this.path = path;
    this.check = check;
    this.value = value;
  }

  public PropertyPath getPath() {
    return path;
  }

  public Object getValue() {
    return value;
  }

  @Override
  public boolean test(Object o) {
    Object value = getValueByPath(o, path);
    return check.apply(value);
  }

  private Object getValueByPath(Object root, PropertyPath path) {
    Object currentValue = root;

    for (PropertyPath currentPath : path) {
      currentValue = wrap(currentValue).getPropertyValue(currentPath.getSegment());

      if (currentValue == null) {
        break;
      }
    }

    return currentValue;
  }

  private BeanWrapper wrap(Object o) {
    return new DirectFieldAccessFallbackBeanWrapper(o);
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateBuilder.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.query;

import io.dapr.spring6.data.repository.query.DaprPredicate;
import org.springframework.data.repository.query.parser.Part;
import org.springframework.util.ObjectUtils;
import org.springframework.util.comparator.Comparators;

import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.function.Predicate;
import java.util.regex.Pattern;

class DaprPredicateBuilder {

  private final Part part;

  private DaprPredicateBuilder(Part part) {
    this.part = part;
  }

  static DaprPredicateBuilder propertyValueOf(Part part) {
    return new DaprPredicateBuilder(part);
  }

  Predicate<Object> isTrue() {
    return new DaprPredicate(part.getProperty(), true);
  }

  public Predicate<Object> isFalse() {
    return new DaprPredicate(part.getProperty(), false);
  }

  public Predicate<Object> isEqualTo(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (!ObjectUtils.nullSafeEquals(Part.IgnoreCaseType.NEVER, part.shouldIgnoreCase())) {
        if ((o instanceof String) && (value instanceof String)) {
          var s1 = (String)o;
          var s2 = (String)value;
          return s1.equalsIgnoreCase(s2);
        }
      }

      return ObjectUtils.nullSafeEquals(o, value);
    });
  }

  public Predicate<Object> isNull() {
    return new DaprPredicate(part.getProperty(), null, Objects::isNull);
  }

  public Predicate<Object> isNotNull() {
    return isNull().negate();
  }

  public Predicate<Object> isLessThan(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> Comparators.nullsHigh().compare(o, value) < 0);
  }

  public Predicate<Object> isLessThanEqual(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> Comparators.nullsHigh().compare(o, value) <= 0);
  }

  public Predicate<Object> isGreaterThan(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> Comparators.nullsHigh().compare(o, value) > 0);
  }

  public Predicate<Object> isGreaterThanEqual(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> Comparators.nullsHigh().compare(o, value) >= 0);
  }

  public Predicate<Object> matches(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (o == null || value == null) {
        return ObjectUtils.nullSafeEquals(o, value);
      }

      if (value instanceof Pattern) {
        var pattern = (Pattern)value;
        return pattern.matcher(o.toString()).find();
      }

      return o.toString().matches(value.toString());
    });
  }

  public Predicate<Object> in(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (value instanceof Collection<?>) {
        var collection = (Collection<?>)value;
        if (o instanceof Collection<?>) {
          var subSet = (Collection<?>)o;
          return collection.containsAll(subSet);
        }

        return collection.contains(o);
      }

      if (ObjectUtils.isArray(value)) {
        return ObjectUtils.containsElement(ObjectUtils.toObjectArray(value), value);
      }

      return false;
    });
  }

  public Predicate<Object> contains(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (o == null) {
        return false;
      }

      if (o instanceof Collection<?>) {
        var collection = (Collection<?>)o;
        return collection.contains(value);
      }

      if (ObjectUtils.isArray(o)) {
        return ObjectUtils.containsElement(ObjectUtils.toObjectArray(o), value);
      }

      if (o instanceof Map<?, ?>) {
        var map = (Map<?, ?>)o;
        return map.containsValue(value);
      }

      if (value == null) {
        return false;
      }

      String s = o.toString();

      if (ObjectUtils.nullSafeEquals(Part.IgnoreCaseType.NEVER, part.shouldIgnoreCase())) {
        return s.contains(value.toString());
      }

      return s.toLowerCase().contains(value.toString().toLowerCase());
    });
  }

  public Predicate<Object> startsWith(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (!(o instanceof String)) {
        return false;
      }
      var s = (String)o;

      if (ObjectUtils.nullSafeEquals(Part.IgnoreCaseType.NEVER, part.shouldIgnoreCase())) {
        return s.startsWith(value.toString());
      }

      return s.toLowerCase().startsWith(value.toString().toLowerCase());
    });
  }

  public Predicate<Object> endsWith(Object value) {
    return new DaprPredicate(part.getProperty(), value, o -> {
      if (!(o instanceof String)) {
        return false;
      }

      var s = (String)o;
      if (ObjectUtils.nullSafeEquals(Part.IgnoreCaseType.NEVER, part.shouldIgnoreCase())) {
        return s.endsWith(value.toString());
      }

      return s.toLowerCase().endsWith(value.toString().toLowerCase());
    });
  }
}


================================================
FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateQueryCreator.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring6.data.repository.query;

import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.domain.Sort;
import org.springframework.data.keyvalue.core.query.KeyValueQuery;
import org.springframework.data.repository.query.ParameterAccessor;
import org.springframework.data.repository.query.parser.AbstractQueryCreator;
import org.springframework.data.repository.query.parser.Part;
import org.springframework.data.repository.query.parser.PartTree;
import org.springframework.lang.Nullable;

import java.util.Iterator;
import java.util.function.Predicate;

/**
 * This class is copied from https://github.com/spring-projects/spring-data-keyvalue/blob/ff441439124585042dd0cbff952f977a343444d2/src/main/java/org/springframework/data/keyvalue/repository/query/PredicateQueryCreator.java#L46
 * because it has private accessors to internal classes, making it impossible to extend or use the original
 * This requires to be created from scratch to not use predicates, but this is only worth it if we can prove these
 * abstractions are worth the time.
 */
public class DaprPredicateQueryCreator extends AbstractQueryCreator<KeyValueQuery<Predicate<?>>, Predicate<?>> {

  public DaprPredicateQueryCreator(PartTree tree, ParameterAccessor parameters) {
    super(tree, parameters);
  }

  @Override
  protected Predicate<?> create(Part part, Iterator<Object> iterator) {
    DaprPredicateBuilder daprPredicateBuilder = DaprPredicateBuilder.propertyValueOf(part);

    switch (part.getType()) {
      case TRUE:
        return daprPredicateBuilder.isTrue();
      case FALSE:
        return daprPredicateBuilder.isFalse();
      case SIMPLE_PROPERTY:
        return daprPredicateBuilder.isEqualTo(iterator.next());
      case IS_NULL:
        return daprPredicateBuilder.isNull();
      case IS_NOT_NULL:
        return daprPredicateBuilder.isNotNull();
      case LIKE:
        return daprPredicateBuilder.contains(iterator.next());
      case STARTING_WITH:
        return daprPredicateBuilder.startsWith(iterator.next());
      case AFTER:
      case GREATER_THAN:
        return daprPredicateBuilder.isGreaterThan(iterator.next());
      case GREATER_THAN_EQUAL:
        return daprPredicateBuilder.isGreaterThanEqual(iterator.next());
      case BEFORE:
      case LESS_THAN:
        return daprPredicateBuilder.isLessThan(iterator.next());
      case LESS_THAN_EQUAL:
        return daprPredicateBuilder.isLessThanEqual(iterator.next());
      case ENDING_WITH:
        return daprPredicateBuilder.endsWith(iterator.next());
      case BETWEEN:
        return daprPredicateBuilder.isGreaterThan(iterator.next())
            .and(daprPredicateBuilder.isLessThan(iterator.next()));
      case REGEX:
        return daprPredicateBuilder.matches(iterator.next());
      case IN:
        return daprPredicateBuilder.in(iterator.next());
      default:
        throw new InvalidDataAccessApiUsageException(String.format("Found invalid part '%s' in query", part.getType()));

    }
  }

  @Override
  protected Predicate<?> and(Part part, Predicate<?> base, Iterator<Object> iterator) {
    return base.and((Predicate) create(part, iterator));
  }

  @Override
  protected Predicate<?> or(Predicate<?> base, Predicate<?> criteria) {
    return base.or((Predicate) criteria);
  }

  @Override
  protected KeyValueQuery<Predicate<?>> complete(@Nullable Predicate<?> criteria, Sort sort) {
    if (criteria == null) {
      return new KeyValueQuery<>(it -> true, sort);
    }
    return new KeyValueQuery<>(criteria, sort);
  }

}


================================================
FILE: dapr-spring/dapr-spring-bom/pom.xml
================================================
<project
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>io.dapr.spring</groupId>
  <artifactId>dapr-spring-bom</artifactId>
  <version>1.18.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>dapr-spring-bom</name>
  <description>Dapr Spring Bill of Materials (BOM). Import this POM to manage versions
    of dapr-sdk-springboot and all dapr-spring-* modules. Imports dapr-sdk-bom
    transitively, so Spring users only need this single BOM.</description>
  <url>https://dapr.io</url>

  <licenses>
    <license>
      <name>Apache License Version 2.0</name>
      <url>https://opensource.org/licenses/Apache-2.0</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <name>Dapr</name>
      <email>daprweb@microsoft.com</email>
      <organization>Dapr</organization>
      <organizationUrl>https://dapr.io</organizationUrl>
    </developer>
  </developers>

  <scm>
    <url>https://github.com/dapr/java-sdk</url>
    <connection>scm:git:https://github.com/dapr/java-sdk.git</connection>
    <tag>HEAD</tag>
  </scm>

  <distributionManagement>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <gpg.skip>true</gpg.skip>
    <dapr.sdk.version>1.18.0-SNAPSHOT</dapr.sdk.version>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.12.1</version>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>1.7.0</version>
        <extensions>true</extensions>
        <configuration>
          <serverId>ossrh</serverId>
          <nexusUrl>https://ossrh-staging-api.central.sonatype.com</nexusUrl>
          <autoReleaseAfterClose>true</autoReleaseAfterClose>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
              <goal>sign</goal>
            </goals>
            <configuration>
              <gpgArguments>
                <arg>--batch</arg>
                <arg>--pinentry-mode</arg>
                <arg>loopback</arg>
              </gpgArguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
      <!-- ====================================================================== -->
      <!-- Import the core Dapr SDK BOM so Spring users get all SDK modules       -->
      <!-- and security overrides via this single BOM.                            -->
      <!-- ====================================================================== -->
      <dependency>
        <groupId>io.dapr</groupId>
        <artifactId>dapr-sdk-bom</artifactId>
        <version>${dapr.sdk.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- ====================================================================== -->
      <!-- Spring integration module (groupId io.dapr)                            -->
      <!-- ====================================================================== -->
      <dependency>
        <groupId>io.dapr</groupId>
        <artifactId>dapr-sdk-springboot</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>

      <!-- ====================================================================== -->
      <!-- Dapr Spring modules (groupId io.dapr.spring)                           -->
      <!-- ====================================================================== -->
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-data</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-6-data</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-messaging</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-workflows</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-properties</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-autoconfigure</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-4-autoconfigure</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-tests</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-starter</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-4-starter</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-starter-test</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dapr.spring</groupId>
        <artifactId>dapr-spring-boot-4-starter-test</artifactId>
        <version>${dapr.sdk.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>io.dapr.spring</groupId>
    <artifactId>dapr-spring-parent</artifactId>
    <version>1.18.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dapr-spring-boot-4-autoconfigure</artifactId>
  <name>dapr-spring-boot-4-autoconfigure</name>
  <description>Dapr Spring Boot 4.x Autoconfigure</description>
  <packaging>jar</packaging>

  <properties>
    <springboot4.version>4.0.5</springboot4.version>
    <!-- Override JUnit version to align with Spring Boot 4.0.x -->
    <junit-bom.version>6.0.2</junit-bom.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Override Jackson 3.x for CVE SNYK-JAVA-TOOLSJACKSONCORE-15907550 (must precede SB BOM) -->
      <dependency>
        <groupId>tools.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>3.1.1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${springboot4.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-autoconfigure</artifactId>
    </dependency>
    <dependency>
      <groupId>tools.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-jackson</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-6-data</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>dapr-sdk-actors</artifactId>
    </dependency>
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-messaging</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-workflows</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-boot-properties</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-keyvalue</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-observation</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>io.dapr.spring</groupId>
      <artifactId>dapr-spring-boot-observation</artifactId>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-observation-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>testcontainers</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>com.vaadin.external.google</groupId>
          <artifactId>android-json</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.dapr</groupId>
      <artifactId>testcontainers-dapr</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientSB4AutoConfiguration.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring.boot4.autoconfigure.client;

import io.dapr.actors.client.ActorClient;
import io.dapr.actors.runtime.ActorRuntime;
import io.dapr.client.DaprClient;
import io.dapr.client.DaprClientBuilder;
import io.dapr.config.Properties;
import io.dapr.serializer.DaprObjectSerializer;
import io.dapr.spring.boot.properties.client.ClientPropertiesDaprConnectionDetails;
import io.dapr.spring.boot.properties.client.DaprClientProperties;
import io.dapr.spring.boot.properties.client.DaprConnectionDetails;
import io.dapr.spring.observation.client.ObservationDaprClient;
import io.dapr.spring.observation.client.ObservationDaprWorkflowClient;
import io.dapr.workflows.client.DaprWorkflowClient;
import io.dapr.workflows.runtime.WorkflowRuntimeBuilder;
import io.micrometer.observation.ObservationRegistry;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;

import java.util.HashMap;
import java.util.Map;

@AutoConfiguration
@ConditionalOnClass(DaprClient.class)
@EnableConfigurationProperties(DaprClientProperties.class)
public class DaprClientSB4AutoConfiguration {

  @Bean
  @ConditionalOnMissingBean(DaprConnectionDetails.class)
  DaprConnectionDetails daprConnectionDetails(DaprClientProperties properties) {
    return new ClientPropertiesDaprConnectionDetails(properties);
  }

  @Bean
  @ConditionalOnMissingBean
  DaprClientBuilder daprClientBuilder(DaprConnectionDetails daprConnectionDetails,
                                      ObjectProvider<DaprObjectSerializer> serializerProvider) {
    DaprClientBuilder builder = createDaprClientBuilder();

    DaprObjectSerializer serializer = serializerProvider.getIfAvailable();
    if (serializer != null) {
      builder.withObjectSerializer(serializer);
      builder.withStateSerializer(serializer);
    }

    String httpEndpoint = daprConnectionDetails.getHttpEndpoint();

    if (httpEndpoint != null) {
      builder.withPropertyOverride(Properties.HTTP_ENDPOINT, httpEndpoint);
    }

    String grpcEndpoint = daprConnectionDetails.getGrpcEndpoint();

    if (grpcEndpoint != null) {
      builder.withPropertyOverride(Properties.GRPC_ENDPOINT, grpcEndpoint);
    }

    Integer httpPort = daprConnectionDetails.getHttpPort();

    if (httpPort != null) {
      builder.withPropertyOverride(Properties.HTTP_PORT, String.valueOf(httpPort));
    }

    Integer grpcPort = daprConnectionDetails.getGrpcPort();

    if (grpcPort != null) {
      builder.withPropertyOverride(Properties.GRPC_PORT, String.valueOf(grpcPort));
    }

    String apiToken = daprConnectionDetails.getApiToken();
    if (apiToken != null) {
      builder.withPropertyOverride(Properties.API_TOKEN, apiToken);
    }

    return builder;
  }

  @Bean
  @ConditionalOnMissingBean
  DaprClient daprClient(DaprClientBuilder daprClientBuilder,
                        ObjectProvider<ObservationRegistry> observationRegistryProvider) {
    DaprClient client = daprClientBuilder.build();
    ObservationRegistry registry = observationRegistryProvider.getIfAvailable();
    if (registry != null && !registry.isNoop()) {
      return new ObservationDaprClient(client, registry);
    }
    return client;
  }

  @Bean
  @ConditionalOnMissingBean
  DaprWorkflowClient daprWorkflowClient(DaprConnectionDetails daprConnectionDetails,
                                         ObjectProvider<ObservationRegistry> observationRegistryProvider) {
    Properties properties = createPropertiesFromConnectionDetails(daprConnectionDetails);
    ObservationRegistry registry = observationRegistryProvider.getIfAvailable();
    if (registry != null && !registry.isNoop()) {
      return new ObservationDaprWorkflowClient(properties, registry);
    }
    return new DaprWorkflowClient(properties);
  }

  @Bean
  @ConditionalOnMissingBean
  ActorClient daprActorClient(DaprConnectionDetails daprConnectionDetails) {
    Properties properties = createPropertiesFromConnectionDetails(daprConnectionDetails);
    return new ActorClient(properties);
  }

  @Bean
  @ConditionalOnMissingBean
  ActorRuntime daprActorRuntime(DaprConnectionDetails daprConnectionDetails) {
    Properties properties = createPropertiesFromConnectionDetails(daprConnectionDetails);
    return ActorRuntime.getInstance(properties);
  }

  @Bean
  @ConditionalOnMissingBean
  WorkflowRuntimeBuilder daprWorkflowRuntimeBuilder(DaprConnectionDetails daprConnectionDetails) {
    Properties properties = createPropertiesFromConnectionDetails(daprConnectionDetails);

    return new WorkflowRuntimeBuilder(properties);
  }

  /**
   * We use this method in tests to override the default DaprClientBuilder.
   */
  protected DaprClientBuilder createDaprClientBuilder() {
    return new DaprClientBuilder();
  }

  /**
   * Creates a Properties object from the DaprConnectionDetails.
   *
   * @param daprConnectionDetails the DaprConnectionDetails
   * @return the Properties object
   */
  protected Properties createPropertiesFromConnectionDetails(DaprConnectionDetails daprConnectionDetails) {
    Map<String, String> propertyOverrides = new HashMap<>();
    String httpEndpoint = daprConnectionDetails.getHttpEndpoint();

    if (httpEndpoint != null) {
      propertyOverrides.put(Properties.HTTP_ENDPOINT.getName(), httpEndpoint);
    }

    Integer httpPort = daprConnectionDetails.getHttpPort();

    if (httpPort != null) {
      propertyOverrides.put(Properties.HTTP_PORT.getName(), String.valueOf(httpPort));
    }

    String grpcEndpoint = daprConnectionDetails.getGrpcEndpoint();

    if (grpcEndpoint != null) {
      propertyOverrides.put(Properties.GRPC_ENDPOINT.getName(), grpcEndpoint);
    }

    Integer grpcPort = daprConnectionDetails.getGrpcPort();

    if (grpcPort != null) {
      propertyOverrides.put(Properties.GRPC_PORT.getName(), String.valueOf(grpcPort));
    }

    String apiToken = daprConnectionDetails.getApiToken();
    if (apiToken != null) {
      propertyOverrides.put(Properties.API_TOKEN.getName(), apiToken);
    }

    return new Properties(propertyOverrides);
  }

}


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfiguration.java
================================================
/*
 * Copyright 2025 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring.boot4.autoconfigure.client;

import io.dapr.serializer.DaprObjectSerializer;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.context.annotation.Bean;
import tools.jackson.databind.json.JsonMapper;

/**
 * Auto-configuration that bridges Jackson 3's {@link JsonMapper} into a {@link DaprObjectSerializer}.
 *
 * <p>Activates only when Jackson 3 is on the classpath and no other {@link DaprObjectSerializer}
 * bean has been defined. Runs after {@link JacksonAutoConfiguration} (which creates the
 * {@link JsonMapper} bean) and before {@link DaprClientSB4AutoConfiguration} (which consumes it).
 */
@AutoConfiguration(after = JacksonAutoConfiguration.class, before = DaprClientSB4AutoConfiguration.class)
@ConditionalOnClass(JsonMapper.class)
public class DaprJackson3SB4AutoConfiguration {

  @Bean
  @ConditionalOnMissingBean(DaprObjectSerializer.class)
  DaprObjectSerializer daprObjectSerializer(JsonMapper jsonMapper) {
    return new Jackson3ObjectSerializer(jsonMapper);
  }
}


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/Jackson3ObjectSerializer.java
================================================
/*
 * Copyright 2025 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring.boot4.autoconfigure.client;

import io.dapr.serializer.DaprObjectSerializer;
import io.dapr.utils.TypeRef;
import tools.jackson.databind.JavaType;
import tools.jackson.databind.json.JsonMapper;

import java.io.IOException;

/**
 * {@link DaprObjectSerializer} implementation backed by Jackson 3's {@link JsonMapper}.
 */
public class Jackson3ObjectSerializer implements DaprObjectSerializer {

  private final JsonMapper jsonMapper;

  public Jackson3ObjectSerializer(JsonMapper jsonMapper) {
    this.jsonMapper = jsonMapper;
  }

  @Override
  public byte[] serialize(Object o) throws IOException {
    if (o == null) {
      return null;
    }

    if (o.getClass() == Void.class) {
      return null;
    }

    if (o instanceof byte[]) {
      return (byte[]) o;
    }

    try {
      return jsonMapper.writeValueAsBytes(o);
    } catch (tools.jackson.core.JacksonException e) {
      throw new IOException(e);
    }
  }

  @Override
  public <T> T deserialize(byte[] data, TypeRef<T> type) throws IOException {
    JavaType javaType = jsonMapper.constructType(type.getType());

    if (javaType.isTypeOrSubTypeOf(Void.class)) {
      return null;
    }

    if (javaType.isPrimitive()) {
      return deserializePrimitives(data, javaType);
    }

    if (data == null) {
      return null;
    }

    if (javaType.hasRawClass(byte[].class)) {
      return (T) data;
    }

    if (data.length == 0) {
      return null;
    }

    try {
      return jsonMapper.readValue(data, javaType);
    } catch (tools.jackson.core.JacksonException e) {
      throw new IOException(e);
    }
  }

  @Override
  public String getContentType() {
    return "application/json";
  }

  @SuppressWarnings("unchecked")
  private <T> T deserializePrimitives(byte[] content, JavaType javaType) throws IOException {
    if (content == null || content.length == 0) {
      if (javaType.hasRawClass(boolean.class)) {
        return (T) Boolean.FALSE;
      }
      if (javaType.hasRawClass(byte.class)) {
        return (T) Byte.valueOf((byte) 0);
      }
      if (javaType.hasRawClass(short.class)) {
        return (T) Short.valueOf((short) 0);
      }
      if (javaType.hasRawClass(int.class)) {
        return (T) Integer.valueOf(0);
      }
      if (javaType.hasRawClass(long.class)) {
        return (T) Long.valueOf(0L);
      }
      if (javaType.hasRawClass(float.class)) {
        return (T) Float.valueOf(0);
      }
      if (javaType.hasRawClass(double.class)) {
        return (T) Double.valueOf(0);
      }
      if (javaType.hasRawClass(char.class)) {
        return (T) Character.valueOf(Character.MIN_VALUE);
      }
      return null;
    }

    try {
      return jsonMapper.readValue(content, javaType);
    } catch (tools.jackson.core.JacksonException e) {
      throw new IOException(e);
    }
  }
}


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
================================================
io.dapr.spring.boot4.autoconfigure.client.DaprJackson3SB4AutoConfiguration
io.dapr.spring.boot4.autoconfigure.client.DaprClientSB4AutoConfiguration


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientAutoConfigurationTest.java
================================================
/*
 * Copyright 2024 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring.boot4.autoconfigure.client;

import io.dapr.client.DaprClient;
import io.dapr.client.DaprClientBuilder;
import io.dapr.config.Properties;
import io.dapr.serializer.DaprObjectSerializer;
import io.dapr.spring.boot.properties.client.DaprConnectionDetails;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

/**
 * Unit tests for {@link DaprClientSB4AutoConfiguration}.
 */
@ExtendWith(MockitoExtension.class)
class DaprClientAutoConfigurationTest {

  private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
      .withConfiguration(AutoConfigurations.of(DaprClientSB4AutoConfiguration.class));

  @Mock
  private DaprConnectionDetails connectionDetails;

  @Mock
  private DaprClientBuilder builder;

  private DaprClientSB4AutoConfiguration configuration;

  @Mock
  private ObjectProvider<DaprObjectSerializer> serializerProvider;

  @Test
  void daprClientBuilder() {
    contextRunner.run(context -> assertThat(context).hasSingleBean(DaprClientBuilder.class));
  }

  @Test
  void daprClient() {
    contextRunner.run(context -> assertThat(context).hasSingleBean(DaprClient.class));
  }

  @BeforeEach
  void setUp() {
    configuration = new TestDaprClientAutoConfiguration(builder);
  }

  @Test
  @DisplayName("Should override HTTP endpoint if it exists")
  void shouldOverrideHttpEndpointIfExists() {
    String httpEndpoint = "http://localhost:3500";

    when(connectionDetails.getHttpEndpoint()).thenReturn(httpEndpoint);

    configuration.daprClientBuilder(connectionDetails, serializerProvider);

    verify(builder).withPropertyOverride(Properties.HTTP_ENDPOINT, httpEndpoint);
  }

  @Test
  @DisplayName("Should override GRPC endpoint if it exists")
  void shouldOverrideGrpcEndpointIfExists() {
    String grpcEndpoint = "grpc://localhost:5001";

    when(connectionDetails.getGrpcEndpoint()).thenReturn(grpcEndpoint);

    configuration.daprClientBuilder(connectionDetails, serializerProvider);

    verify(builder).withPropertyOverride(Properties.GRPC_ENDPOINT, grpcEndpoint);
  }

  @Test
  @DisplayName("Should override HTTP port if it exists")
  void shouldOverrideHttpPortIfExists() {
    Integer httpPort = 3600;

    when(connectionDetails.getHttpPort()).thenReturn(httpPort);

    configuration.daprClientBuilder(connectionDetails, serializerProvider);

    verify(builder).withPropertyOverride(Properties.HTTP_PORT, String.valueOf(httpPort));
  }

  @Test
  @DisplayName("Should override GRPC port if it exists")
  void shouldOverrideGrpcPortIfExists() {
    Integer grpcPort = 6001;

    when(connectionDetails.getGrpcPort()).thenReturn(grpcPort);

    configuration.daprClientBuilder(connectionDetails, serializerProvider);

    verify(builder).withPropertyOverride(Properties.GRPC_PORT, String.valueOf(grpcPort));
  }

  @Test
  @DisplayName("Should override API token if it exists")
  void shouldOverrideApiTokenIfExists() {
    String apiToken = "token";

    when(connectionDetails.getApiToken()).thenReturn(apiToken);

    configuration.daprClientBuilder(connectionDetails, serializerProvider);

    verify(builder).withPropertyOverride(Properties.API_TOKEN, apiToken);
  }

  @Test
  @DisplayName("Should override HTTP endpoint in properties if it exists")
  void shouldOverrideHttpEndpointInPropertiesIfExists() {
    String httpEndpoint = "http://localhost:3500";

    when(connectionDetails.getHttpEndpoint()).thenReturn(httpEndpoint);

    Properties reuslt = configuration.createPropertiesFromConnectionDetails(connectionDetails);

    assertThat(reuslt.getValue(Properties.HTTP_ENDPOINT)).isEqualTo(httpEndpoint);
  }

  @Test
  @DisplayName("Should override GRPC endpoint in properties if it exists")
  void shouldOverrideGrpcEndpointPropertiesIfExists() {
    String grpcEndpoint = "grpc://localhost:3500";

    when(connectionDetails.getGrpcEndpoint()).thenReturn(grpcEndpoint);

    Properties result = configuration.createPropertiesFromConnectionDetails(connectionDetails);

    assertThat(result.getValue(Properties.GRPC_ENDPOINT)).isEqualTo(grpcEndpoint);
  }

  @Test
  @DisplayName("Should override HTTP port in properties if it exists")
  void shouldOverrideHttpPortPropertiesIfExists() {
    Integer httpPort = 3600;

    when(connectionDetails.getHttpPort()).thenReturn(httpPort);

    Properties result = configuration.createPropertiesFromConnectionDetails(connectionDetails);

    assertThat(result.getValue(Properties.HTTP_PORT)).isEqualTo(httpPort);
  }

  @Test
  @DisplayName("Should override GRPC port in properties if it exists")
  void shouldOverrideGrpcPortPropertiesIfExists() {
    Integer grpcPort = 6001;

    when(connectionDetails.getGrpcPort()).thenReturn(grpcPort);

    Properties result = configuration.createPropertiesFromConnectionDetails(connectionDetails);

    assertThat(result.getValue(Properties.GRPC_PORT)).isEqualTo(grpcPort);
  }

  @Test
  @DisplayName("Should override API token in properties if it exists")
  void shouldOverrideApiTokenPropertiesIfExists() {
    String apiToken = "token";

    when(connectionDetails.getApiToken()).thenReturn(apiToken);

    Properties result = configuration.createPropertiesFromConnectionDetails(connectionDetails);

    assertThat(result.getValue(Properties.API_TOKEN)).isEqualTo(apiToken);
  }

  private static class TestDaprClientAutoConfiguration extends DaprClientSB4AutoConfiguration {

    private final DaprClientBuilder daprClientBuilder;

    public TestDaprClientAutoConfiguration(DaprClientBuilder daprClientBuilder) {
      this.daprClientBuilder = daprClientBuilder;
    }

    @Override
    protected DaprClientBuilder createDaprClientBuilder() {
      return daprClientBuilder;
    }
  }

}


================================================
FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfigurationTest.java
================================================
/*
 * Copyright 2025 The Dapr Authors
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.spring.boot4.autoconfigure.client;

import io.dapr.serializer.DaprObjectSerializer;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tools.jackson.databind.json.JsonMapper;

import static org.assertj.core.api.Assertions.assertThat;

class DaprJackson3SB4AutoConfigurationTest {

  private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
      .withConfiguration(AutoConfigurations.of(
          JacksonAutoConfiguration.class,
          DaprJackson3SB4AutoConfiguration.class));

  @Test
  @Disp
Download .txt
gitextract_5uciof7p/

├── .codecov.yaml
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── discussion.md
│   │   ├── feature_request.md
│   │   ├── proposal.md
│   │   └── question.md
│   ├── dependabot.yml
│   ├── holopin.yml
│   ├── pull_request_template.md
│   ├── scripts/
│   │   ├── automerge.py
│   │   ├── create-release.sh
│   │   ├── update_docs.sh
│   │   └── update_sdk_version.sh
│   └── workflows/
│       ├── automerge-bot.yml
│       ├── backport.yaml
│       ├── build.yml
│       ├── create-release.yml
│       ├── dapr_bot.yml
│       ├── fossa.yml
│       ├── validate-docs.yml
│       └── validate.yml
├── .gitignore
├── .gitmodules
├── .java_header
├── .mvn/
│   └── wrapper/
│       └── maven-wrapper.properties
├── .sdkmanrc
├── CODEOWNERS
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── checkstyle.xml
├── dapr-spring/
│   ├── dapr-spring-6-data/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring6/
│   │                           └── data/
│   │                               ├── AbstractDaprKeyValueAdapter.java
│   │                               ├── DaprKeyValueAdapterResolver.java
│   │                               ├── DaprKeyValueTemplate.java
│   │                               ├── DefaultIdentifierGenerator.java
│   │                               ├── GeneratingIdAccessor.java
│   │                               ├── KeyValueAdapterResolver.java
│   │                               ├── MySQLDaprKeyValueAdapter.java
│   │                               ├── PostgreSQLDaprKeyValueAdapter.java
│   │                               └── repository/
│   │                                   ├── config/
│   │                                   │   ├── DaprRepositoriesRegistrar.java
│   │                                   │   ├── DaprRepositoryConfigurationExtension.java
│   │                                   │   └── EnableDaprRepositories.java
│   │                                   └── query/
│   │                                       ├── DaprPredicate.java
│   │                                       ├── DaprPredicateBuilder.java
│   │                                       └── DaprPredicateQueryCreator.java
│   ├── dapr-spring-bom/
│   │   └── pom.xml
│   ├── dapr-spring-boot-4-autoconfigure/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── spring/
│   │       │   │               └── boot4/
│   │       │   │                   └── autoconfigure/
│   │       │   │                       └── client/
│   │       │   │                           ├── DaprClientSB4AutoConfiguration.java
│   │       │   │                           ├── DaprJackson3SB4AutoConfiguration.java
│   │       │   │                           └── Jackson3ObjectSerializer.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring/
│   │       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot4/
│   │                               └── autoconfigure/
│   │                                   └── client/
│   │                                       ├── DaprClientAutoConfigurationTest.java
│   │                                       ├── DaprJackson3SB4AutoConfigurationTest.java
│   │                                       ├── DaprWorkflowsRegistrationTests.java
│   │                                       ├── Jackson3ObjectSerializerTest.java
│   │                                       ├── WorkflowTestApplication.java
│   │                                       └── workflows/
│   │                                           ├── TestActivity.java
│   │                                           └── TestWorkflow.java
│   ├── dapr-spring-boot-autoconfigure/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── spring/
│   │       │   │               └── boot/
│   │       │   │                   └── autoconfigure/
│   │       │   │                       └── client/
│   │       │   │                           └── DaprClientAutoConfiguration.java
│   │       │   └── resources/
│   │       │       └── META-INF/
│   │       │           └── spring/
│   │       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot/
│   │                               └── autoconfigure/
│   │                                   └── client/
│   │                                       ├── DaprClientAutoConfigurationTest.java
│   │                                       ├── DaprClientObservationAutoConfigurationTest.java
│   │                                       ├── DaprWorkflowsRegistrationTests.java
│   │                                       ├── WorkflowTestApplication.java
│   │                                       └── workflows/
│   │                                           ├── TestActivity.java
│   │                                           └── TestWorkflow.java
│   ├── dapr-spring-boot-observation/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── dapr/
│   │       │               └── spring/
│   │       │                   └── observation/
│   │       │                       └── client/
│   │       │                           ├── ObservationDaprClient.java
│   │       │                           ├── ObservationDaprWorkflowClient.java
│   │       │                           └── TraceContextFormat.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── observation/
│   │                               └── client/
│   │                                   ├── ObservationDaprClientTest.java
│   │                                   └── ObservationDaprWorkflowClientTest.java
│   ├── dapr-spring-boot-properties/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── dapr/
│   │       │               └── spring/
│   │       │                   └── boot/
│   │       │                       └── properties/
│   │       │                           ├── client/
│   │       │                           │   ├── ClientPropertiesDaprConnectionDetails.java
│   │       │                           │   ├── DaprClientProperties.java
│   │       │                           │   └── DaprConnectionDetails.java
│   │       │                           ├── pubsub/
│   │       │                           │   └── DaprPubSubProperties.java
│   │       │                           └── statestore/
│   │       │                               └── DaprStateStoreProperties.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── boot/
│   │                               └── properties/
│   │                                   ├── client/
│   │                                   │   └── DaprClientPropertiesTest.java
│   │                                   ├── pubsub/
│   │                                   │   └── DaprPubSubPropertiesTest.java
│   │                                   └── statestore/
│   │                                       └── DaprStateStorePropertiesTest.java
│   ├── dapr-spring-boot-starters/
│   │   ├── dapr-spring-boot-4-starter/
│   │   │   └── pom.xml
│   │   ├── dapr-spring-boot-4-starter-test/
│   │   │   └── pom.xml
│   │   ├── dapr-spring-boot-starter/
│   │   │   └── pom.xml
│   │   └── dapr-spring-boot-starter-test/
│   │       └── pom.xml
│   ├── dapr-spring-boot-tests/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── spring/
│   │           │               └── boot/
│   │           │                   └── testcontainers/
│   │           │                       └── service/
│   │           │                           └── connection/
│   │           │                               └── DaprContainerConnectionDetailsFactory.java
│   │           └── resources/
│   │               └── META-INF/
│   │                   └── spring.factories
│   ├── dapr-spring-data/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── data/
│   │                               ├── AbstractDaprKeyValueAdapter.java
│   │                               ├── DaprKeyValueAdapterResolver.java
│   │                               ├── DaprKeyValueTemplate.java
│   │                               ├── DefaultIdentifierGenerator.java
│   │                               ├── GeneratingIdAccessor.java
│   │                               ├── KeyValueAdapterResolver.java
│   │                               ├── MySQLDaprKeyValueAdapter.java
│   │                               ├── PostgreSQLDaprKeyValueAdapter.java
│   │                               └── repository/
│   │                                   ├── config/
│   │                                   │   ├── DaprRepositoriesRegistrar.java
│   │                                   │   ├── DaprRepositoryConfigurationExtension.java
│   │                                   │   └── EnableDaprRepositories.java
│   │                                   └── query/
│   │                                       ├── DaprPredicate.java
│   │                                       ├── DaprPredicateBuilder.java
│   │                                       └── DaprPredicateQueryCreator.java
│   ├── dapr-spring-messaging/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── messaging/
│   │                               ├── DaprMessagingOperations.java
│   │                               ├── DaprMessagingTemplate.java
│   │                               └── observation/
│   │                                   ├── DaprMessagingObservationConvention.java
│   │                                   ├── DaprMessagingObservationDocumentation.java
│   │                                   ├── DaprMessagingSenderContext.java
│   │                                   └── DefaultDaprMessagingObservationConvention.java
│   ├── dapr-spring-workflows/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── spring/
│   │                           └── workflows/
│   │                               └── config/
│   │                                   ├── DaprWorkflowsConfiguration.java
│   │                                   ├── EnableDaprWorkflows.java
│   │                                   └── annotations/
│   │                                       ├── ActivityMetadata.java
│   │                                       └── WorkflowMetadata.java
│   ├── pom.xml
│   └── spotbugs-exclude.xml
├── docs/
│   ├── allclasses-index.html
│   ├── allpackages-index.html
│   ├── constant-values.html
│   ├── css/
│   │   ├── maven-base.css
│   │   ├── maven-theme.css
│   │   ├── print.css
│   │   └── site.css
│   ├── dapr-sdk-springboot/
│   │   └── css/
│   │       ├── maven-base.css
│   │       ├── maven-theme.css
│   │       ├── print.css
│   │       └── site.css
│   ├── dapr-sdk-workflows/
│   │   ├── allclasses-index.html
│   │   ├── allpackages-index.html
│   │   ├── css/
│   │   │   ├── maven-base.css
│   │   │   ├── maven-theme.css
│   │   │   ├── print.css
│   │   │   └── site.css
│   │   ├── element-list
│   │   ├── help-doc.html
│   │   ├── index-all.html
│   │   ├── index.html
│   │   ├── io/
│   │   │   └── dapr/
│   │   │       └── workflows/
│   │   │           ├── Workflow.html
│   │   │           ├── WorkflowContext.html
│   │   │           ├── WorkflowStub.html
│   │   │           ├── class-use/
│   │   │           │   ├── Workflow.html
│   │   │           │   ├── WorkflowContext.html
│   │   │           │   └── WorkflowStub.html
│   │   │           ├── client/
│   │   │           │   ├── DaprWorkflowClient.html
│   │   │           │   ├── WorkflowFailureDetails.html
│   │   │           │   ├── WorkflowInstanceStatus.html
│   │   │           │   ├── class-use/
│   │   │           │   │   ├── DaprWorkflowClient.html
│   │   │           │   │   ├── WorkflowFailureDetails.html
│   │   │           │   │   └── WorkflowInstanceStatus.html
│   │   │           │   ├── package-summary.html
│   │   │           │   ├── package-tree.html
│   │   │           │   └── package-use.html
│   │   │           ├── internal/
│   │   │           │   ├── ApiTokenClientInterceptor.html
│   │   │           │   ├── class-use/
│   │   │           │   │   └── ApiTokenClientInterceptor.html
│   │   │           │   ├── package-summary.html
│   │   │           │   ├── package-tree.html
│   │   │           │   └── package-use.html
│   │   │           ├── package-summary.html
│   │   │           ├── package-tree.html
│   │   │           ├── package-use.html
│   │   │           └── runtime/
│   │   │               ├── WorkflowRuntime.html
│   │   │               ├── WorkflowRuntimeBuilder.html
│   │   │               ├── class-use/
│   │   │               │   ├── WorkflowRuntime.html
│   │   │               │   └── WorkflowRuntimeBuilder.html
│   │   │               ├── package-summary.html
│   │   │               ├── package-tree.html
│   │   │               └── package-use.html
│   │   ├── jquery-ui.overrides.css
│   │   ├── legal/
│   │   │   ├── ADDITIONAL_LICENSE_INFO
│   │   │   ├── ASSEMBLY_EXCEPTION
│   │   │   ├── LICENSE
│   │   │   ├── jquery.md
│   │   │   └── jqueryUI.md
│   │   ├── member-search-index.js
│   │   ├── module-search-index.js
│   │   ├── overview-summary.html
│   │   ├── overview-tree.html
│   │   ├── package-search-index.js
│   │   ├── project-reports.html
│   │   ├── script.js
│   │   ├── search.js
│   │   ├── stylesheet.css
│   │   ├── tag-search-index.js
│   │   └── type-search-index.js
│   ├── deprecated-list.html
│   ├── element-list
│   ├── help-doc.html
│   ├── index-all.html
│   ├── index.html
│   ├── io/
│   │   └── dapr/
│   │       ├── Rule.html
│   │       ├── Topic.html
│   │       ├── actors/
│   │       │   ├── ActorId.html
│   │       │   ├── ActorMethod.html
│   │       │   ├── ActorTrace.html
│   │       │   ├── ActorType.html
│   │       │   ├── ActorUtils.html
│   │       │   ├── class-use/
│   │       │   │   ├── ActorId.html
│   │       │   │   ├── ActorMethod.html
│   │       │   │   ├── ActorTrace.html
│   │       │   │   ├── ActorType.html
│   │       │   │   └── ActorUtils.html
│   │       │   ├── client/
│   │       │   │   ├── ActorClient.html
│   │       │   │   ├── ActorProxy.html
│   │       │   │   ├── ActorProxyBuilder.html
│   │       │   │   ├── class-use/
│   │       │   │   │   ├── ActorClient.html
│   │       │   │   │   ├── ActorProxy.html
│   │       │   │   │   └── ActorProxyBuilder.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   ├── package-use.html
│   │       │   └── runtime/
│   │       │       ├── AbstractActor.html
│   │       │       ├── ActorFactory.html
│   │       │       ├── ActorMethodContext.html
│   │       │       ├── ActorObjectSerializer.html
│   │       │       ├── ActorRuntime.html
│   │       │       ├── ActorRuntimeConfig.html
│   │       │       ├── ActorRuntimeContext.html
│   │       │       ├── ActorStateChange.html
│   │       │       ├── ActorStateChangeKind.html
│   │       │       ├── ActorStateManager.html
│   │       │       ├── ActorTypeConfig.html
│   │       │       ├── Remindable.html
│   │       │       ├── class-use/
│   │       │       │   ├── AbstractActor.html
│   │       │       │   ├── ActorFactory.html
│   │       │       │   ├── ActorMethodContext.html
│   │       │       │   ├── ActorObjectSerializer.html
│   │       │       │   ├── ActorRuntime.html
│   │       │       │   ├── ActorRuntimeConfig.html
│   │       │       │   ├── ActorRuntimeContext.html
│   │       │       │   ├── ActorStateChange.html
│   │       │       │   ├── ActorStateChangeKind.html
│   │       │       │   ├── ActorStateManager.html
│   │       │       │   ├── ActorTypeConfig.html
│   │       │       │   └── Remindable.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── class-use/
│   │       │   ├── Rule.html
│   │       │   └── Topic.html
│   │       ├── client/
│   │       │   ├── DaprClient.html
│   │       │   ├── DaprClientBuilder.html
│   │       │   ├── DaprClientImpl.html
│   │       │   ├── DaprHttp.HttpMethods.html
│   │       │   ├── DaprHttp.Response.html
│   │       │   ├── DaprHttp.html
│   │       │   ├── DaprHttpBuilder.html
│   │       │   ├── DaprPreviewClient.html
│   │       │   ├── Headers.html
│   │       │   ├── ObjectSerializer.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprClient.html
│   │       │   │   ├── DaprClientBuilder.html
│   │       │   │   ├── DaprClientImpl.html
│   │       │   │   ├── DaprHttp.HttpMethods.html
│   │       │   │   ├── DaprHttp.Response.html
│   │       │   │   ├── DaprHttp.html
│   │       │   │   ├── DaprHttpBuilder.html
│   │       │   │   ├── DaprPreviewClient.html
│   │       │   │   ├── Headers.html
│   │       │   │   └── ObjectSerializer.html
│   │       │   ├── domain/
│   │       │   │   ├── ActorMetadata.html
│   │       │   │   ├── AppConnectionPropertiesHealthMetadata.html
│   │       │   │   ├── AppConnectionPropertiesMetadata.html
│   │       │   │   ├── BulkPublishEntry.html
│   │       │   │   ├── BulkPublishRequest.html
│   │       │   │   ├── BulkPublishResponse.html
│   │       │   │   ├── BulkPublishResponseFailedEntry.html
│   │       │   │   ├── BulkSubscribeAppResponse.html
│   │       │   │   ├── BulkSubscribeAppResponseEntry.html
│   │       │   │   ├── BulkSubscribeAppResponseStatus.html
│   │       │   │   ├── BulkSubscribeMessage.html
│   │       │   │   ├── BulkSubscribeMessageEntry.html
│   │       │   │   ├── CloudEvent.html
│   │       │   │   ├── ComponentMetadata.html
│   │       │   │   ├── ConfigurationItem.html
│   │       │   │   ├── DaprMetadata.html
│   │       │   │   ├── DeleteStateRequest.html
│   │       │   │   ├── ExecuteStateTransactionRequest.html
│   │       │   │   ├── GetBulkSecretRequest.html
│   │       │   │   ├── GetBulkStateRequest.html
│   │       │   │   ├── GetConfigurationRequest.html
│   │       │   │   ├── GetSecretRequest.html
│   │       │   │   ├── GetStateRequest.html
│   │       │   │   ├── HttpEndpointMetadata.html
│   │       │   │   ├── HttpExtension.html
│   │       │   │   ├── InvokeBindingRequest.html
│   │       │   │   ├── InvokeMethodRequest.html
│   │       │   │   ├── LockRequest.html
│   │       │   │   ├── Metadata.html
│   │       │   │   ├── PublishEventRequest.html
│   │       │   │   ├── QueryStateItem.html
│   │       │   │   ├── QueryStateRequest.html
│   │       │   │   ├── QueryStateResponse.html
│   │       │   │   ├── RuleMetadata.html
│   │       │   │   ├── SaveStateRequest.html
│   │       │   │   ├── State.html
│   │       │   │   ├── StateOptions.Concurrency.html
│   │       │   │   ├── StateOptions.Consistency.html
│   │       │   │   ├── StateOptions.StateOptionDurationDeserializer.html
│   │       │   │   ├── StateOptions.StateOptionDurationSerializer.html
│   │       │   │   ├── StateOptions.html
│   │       │   │   ├── SubscribeConfigurationRequest.html
│   │       │   │   ├── SubscribeConfigurationResponse.html
│   │       │   │   ├── SubscriptionMetadata.html
│   │       │   │   ├── TransactionalStateOperation.OperationType.html
│   │       │   │   ├── TransactionalStateOperation.html
│   │       │   │   ├── TransactionalStateRequest.html
│   │       │   │   ├── UnlockRequest.html
│   │       │   │   ├── UnlockResponseStatus.html
│   │       │   │   ├── UnsubscribeConfigurationRequest.html
│   │       │   │   ├── UnsubscribeConfigurationResponse.html
│   │       │   │   ├── class-use/
│   │       │   │   │   ├── ActorMetadata.html
│   │       │   │   │   ├── AppConnectionPropertiesHealthMetadata.html
│   │       │   │   │   ├── AppConnectionPropertiesMetadata.html
│   │       │   │   │   ├── BulkPublishEntry.html
│   │       │   │   │   ├── BulkPublishRequest.html
│   │       │   │   │   ├── BulkPublishResponse.html
│   │       │   │   │   ├── BulkPublishResponseFailedEntry.html
│   │       │   │   │   ├── BulkSubscribeAppResponse.html
│   │       │   │   │   ├── BulkSubscribeAppResponseEntry.html
│   │       │   │   │   ├── BulkSubscribeAppResponseStatus.html
│   │       │   │   │   ├── BulkSubscribeMessage.html
│   │       │   │   │   ├── BulkSubscribeMessageEntry.html
│   │       │   │   │   ├── CloudEvent.html
│   │       │   │   │   ├── ComponentMetadata.html
│   │       │   │   │   ├── ConfigurationItem.html
│   │       │   │   │   ├── DaprMetadata.html
│   │       │   │   │   ├── DeleteStateRequest.html
│   │       │   │   │   ├── ExecuteStateTransactionRequest.html
│   │       │   │   │   ├── GetBulkSecretRequest.html
│   │       │   │   │   ├── GetBulkStateRequest.html
│   │       │   │   │   ├── GetConfigurationRequest.html
│   │       │   │   │   ├── GetSecretRequest.html
│   │       │   │   │   ├── GetStateRequest.html
│   │       │   │   │   ├── HttpEndpointMetadata.html
│   │       │   │   │   ├── HttpExtension.html
│   │       │   │   │   ├── InvokeBindingRequest.html
│   │       │   │   │   ├── InvokeMethodRequest.html
│   │       │   │   │   ├── LockRequest.html
│   │       │   │   │   ├── Metadata.html
│   │       │   │   │   ├── PublishEventRequest.html
│   │       │   │   │   ├── QueryStateItem.html
│   │       │   │   │   ├── QueryStateRequest.html
│   │       │   │   │   ├── QueryStateResponse.html
│   │       │   │   │   ├── RuleMetadata.html
│   │       │   │   │   ├── SaveStateRequest.html
│   │       │   │   │   ├── State.html
│   │       │   │   │   ├── StateOptions.Concurrency.html
│   │       │   │   │   ├── StateOptions.Consistency.html
│   │       │   │   │   ├── StateOptions.StateOptionDurationDeserializer.html
│   │       │   │   │   ├── StateOptions.StateOptionDurationSerializer.html
│   │       │   │   │   ├── StateOptions.html
│   │       │   │   │   ├── SubscribeConfigurationRequest.html
│   │       │   │   │   ├── SubscribeConfigurationResponse.html
│   │       │   │   │   ├── SubscriptionMetadata.html
│   │       │   │   │   ├── TransactionalStateOperation.OperationType.html
│   │       │   │   │   ├── TransactionalStateOperation.html
│   │       │   │   │   ├── TransactionalStateRequest.html
│   │       │   │   │   ├── UnlockRequest.html
│   │       │   │   │   ├── UnlockResponseStatus.html
│   │       │   │   │   ├── UnsubscribeConfigurationRequest.html
│   │       │   │   │   └── UnsubscribeConfigurationResponse.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   ├── package-use.html
│   │       │   │   └── query/
│   │       │   │       ├── Pagination.html
│   │       │   │       ├── Query.html
│   │       │   │       ├── Sorting.Order.html
│   │       │   │       ├── Sorting.html
│   │       │   │       ├── class-use/
│   │       │   │       │   ├── Pagination.html
│   │       │   │       │   ├── Query.html
│   │       │   │       │   ├── Sorting.Order.html
│   │       │   │       │   └── Sorting.html
│   │       │   │       ├── filters/
│   │       │   │       │   ├── AndFilter.html
│   │       │   │       │   ├── EqFilter.html
│   │       │   │       │   ├── Filter.html
│   │       │   │       │   ├── InFilter.html
│   │       │   │       │   ├── OrFilter.html
│   │       │   │       │   ├── class-use/
│   │       │   │       │   │   ├── AndFilter.html
│   │       │   │       │   │   ├── EqFilter.html
│   │       │   │       │   │   ├── Filter.html
│   │       │   │       │   │   ├── InFilter.html
│   │       │   │       │   │   └── OrFilter.html
│   │       │   │       │   ├── package-summary.html
│   │       │   │       │   ├── package-tree.html
│   │       │   │       │   └── package-use.html
│   │       │   │       ├── package-summary.html
│   │       │   │       ├── package-tree.html
│   │       │   │       └── package-use.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   ├── package-use.html
│   │       │   └── resiliency/
│   │       │       ├── ResiliencyOptions.html
│   │       │       ├── class-use/
│   │       │       │   └── ResiliencyOptions.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── config/
│   │       │   ├── BooleanProperty.html
│   │       │   ├── GenericProperty.html
│   │       │   ├── IntegerProperty.html
│   │       │   ├── MillisecondsDurationProperty.html
│   │       │   ├── Properties.html
│   │       │   ├── Property.html
│   │       │   ├── StringProperty.html
│   │       │   ├── class-use/
│   │       │   │   ├── BooleanProperty.html
│   │       │   │   ├── GenericProperty.html
│   │       │   │   ├── IntegerProperty.html
│   │       │   │   ├── MillisecondsDurationProperty.html
│   │       │   │   ├── Properties.html
│   │       │   │   ├── Property.html
│   │       │   │   └── StringProperty.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── exceptions/
│   │       │   ├── DaprError.html
│   │       │   ├── DaprErrorDetails.ErrorDetailType.html
│   │       │   ├── DaprErrorDetails.html
│   │       │   ├── DaprException.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprError.html
│   │       │   │   ├── DaprErrorDetails.ErrorDetailType.html
│   │       │   │   ├── DaprErrorDetails.html
│   │       │   │   └── DaprException.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── internal/
│   │       │   ├── grpc/
│   │       │   │   ├── DaprClientGrpcInterceptors.html
│   │       │   │   ├── class-use/
│   │       │   │   │   └── DaprClientGrpcInterceptors.html
│   │       │   │   ├── interceptors/
│   │       │   │   │   ├── DaprApiTokenInterceptor.html
│   │       │   │   │   ├── DaprAppIdInterceptor.html
│   │       │   │   │   ├── DaprTimeoutInterceptor.html
│   │       │   │   │   ├── DaprTracingInterceptor.html
│   │       │   │   │   ├── class-use/
│   │       │   │   │   │   ├── DaprApiTokenInterceptor.html
│   │       │   │   │   │   ├── DaprAppIdInterceptor.html
│   │       │   │   │   │   ├── DaprTimeoutInterceptor.html
│   │       │   │   │   │   └── DaprTracingInterceptor.html
│   │       │   │   │   ├── package-summary.html
│   │       │   │   │   ├── package-tree.html
│   │       │   │   │   └── package-use.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   ├── opencensus/
│   │       │   │   ├── GrpcHelper.html
│   │       │   │   ├── class-use/
│   │       │   │   │   └── GrpcHelper.html
│   │       │   │   ├── package-summary.html
│   │       │   │   ├── package-tree.html
│   │       │   │   └── package-use.html
│   │       │   └── resiliency/
│   │       │       ├── RetryPolicy.html
│   │       │       ├── TimeoutPolicy.html
│   │       │       ├── class-use/
│   │       │       │   ├── RetryPolicy.html
│   │       │       │   └── TimeoutPolicy.html
│   │       │       ├── package-summary.html
│   │       │       ├── package-tree.html
│   │       │       └── package-use.html
│   │       ├── package-summary.html
│   │       ├── package-tree.html
│   │       ├── package-use.html
│   │       ├── serializer/
│   │       │   ├── DaprObjectSerializer.html
│   │       │   ├── DefaultObjectSerializer.html
│   │       │   ├── class-use/
│   │       │   │   ├── DaprObjectSerializer.html
│   │       │   │   └── DefaultObjectSerializer.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── utils/
│   │       │   ├── DefaultContentTypeConverter.html
│   │       │   ├── DurationUtils.html
│   │       │   ├── NetworkUtils.html
│   │       │   ├── TypeRef.html
│   │       │   ├── Version.html
│   │       │   ├── class-use/
│   │       │   │   ├── DefaultContentTypeConverter.html
│   │       │   │   ├── DurationUtils.html
│   │       │   │   ├── NetworkUtils.html
│   │       │   │   ├── TypeRef.html
│   │       │   │   └── Version.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       ├── v1/
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaBlockingStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaFutureStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaImplBase.html
│   │       │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaStub.html
│   │       │   ├── AppCallbackAlphaGrpc.AsyncService.html
│   │       │   ├── AppCallbackAlphaGrpc.html
│   │       │   ├── AppCallbackGrpc.AppCallbackBlockingStub.html
│   │       │   ├── AppCallbackGrpc.AppCallbackFutureStub.html
│   │       │   ├── AppCallbackGrpc.AppCallbackImplBase.html
│   │       │   ├── AppCallbackGrpc.AppCallbackStub.html
│   │       │   ├── AppCallbackGrpc.AsyncService.html
│   │       │   ├── AppCallbackGrpc.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckBlockingStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckFutureStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckImplBase.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckStub.html
│   │       │   ├── AppCallbackHealthCheckGrpc.AsyncService.html
│   │       │   ├── AppCallbackHealthCheckGrpc.html
│   │       │   ├── CommonProtos.ConfigurationItem.Builder.html
│   │       │   ├── CommonProtos.ConfigurationItem.html
│   │       │   ├── CommonProtos.ConfigurationItemOrBuilder.html
│   │       │   ├── CommonProtos.Etag.Builder.html
│   │       │   ├── CommonProtos.Etag.html
│   │       │   ├── CommonProtos.EtagOrBuilder.html
│   │       │   ├── CommonProtos.HTTPExtension.Builder.html
│   │       │   ├── CommonProtos.HTTPExtension.Verb.html
│   │       │   ├── CommonProtos.HTTPExtension.html
│   │       │   ├── CommonProtos.HTTPExtensionOrBuilder.html
│   │       │   ├── CommonProtos.InvokeRequest.Builder.html
│   │       │   ├── CommonProtos.InvokeRequest.html
│   │       │   ├── CommonProtos.InvokeRequestOrBuilder.html
│   │       │   ├── CommonProtos.InvokeResponse.Builder.html
│   │       │   ├── CommonProtos.InvokeResponse.html
│   │       │   ├── CommonProtos.InvokeResponseOrBuilder.html
│   │       │   ├── CommonProtos.StateItem.Builder.html
│   │       │   ├── CommonProtos.StateItem.html
│   │       │   ├── CommonProtos.StateItemOrBuilder.html
│   │       │   ├── CommonProtos.StateOptions.Builder.html
│   │       │   ├── CommonProtos.StateOptions.StateConcurrency.html
│   │       │   ├── CommonProtos.StateOptions.StateConsistency.html
│   │       │   ├── CommonProtos.StateOptions.html
│   │       │   ├── CommonProtos.StateOptionsOrBuilder.html
│   │       │   ├── CommonProtos.StreamPayload.Builder.html
│   │       │   ├── CommonProtos.StreamPayload.html
│   │       │   ├── CommonProtos.StreamPayloadOrBuilder.html
│   │       │   ├── CommonProtos.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.BindingEventConcurrency.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.BindingEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.Builder.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.html
│   │       │   ├── DaprAppCallbackProtos.BulkSubscribeConfigOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponse.html
│   │       │   ├── DaprAppCallbackProtos.HealthCheckResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.JobEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.JobEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.html
│   │       │   ├── DaprAppCallbackProtos.ListInputBindingsResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.html
│   │       │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.EventCase.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntryOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntryOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventBulkResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventCERequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequest.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequest.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventRequestOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.TopicEventResponseStatus.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponse.html
│   │       │   ├── DaprAppCallbackProtos.TopicEventResponseOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutes.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutes.html
│   │       │   ├── DaprAppCallbackProtos.TopicRoutesOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRule.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicRule.html
│   │       │   ├── DaprAppCallbackProtos.TopicRuleOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscription.Builder.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscription.html
│   │       │   ├── DaprAppCallbackProtos.TopicSubscriptionOrBuilder.html
│   │       │   ├── DaprAppCallbackProtos.html
│   │       │   ├── DaprGrpc.AsyncService.html
│   │       │   ├── DaprGrpc.DaprBlockingStub.html
│   │       │   ├── DaprGrpc.DaprFutureStub.html
│   │       │   ├── DaprGrpc.DaprImplBase.html
│   │       │   ├── DaprGrpc.DaprStub.html
│   │       │   ├── DaprGrpc.html
│   │       │   ├── DaprProtos.ShutdownRequest.Builder.html
│   │       │   ├── DaprProtos.ShutdownRequest.html
│   │       │   ├── DaprProtos.ShutdownRequestOrBuilder.html
│   │       │   ├── DaprProtos.html
│   │       │   ├── class-use/
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaBlockingStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaFutureStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaImplBase.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AppCallbackAlphaStub.html
│   │       │   │   ├── AppCallbackAlphaGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackAlphaGrpc.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackBlockingStub.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackFutureStub.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackImplBase.html
│   │       │   │   ├── AppCallbackGrpc.AppCallbackStub.html
│   │       │   │   ├── AppCallbackGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackGrpc.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckBlockingStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckFutureStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckImplBase.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AppCallbackHealthCheckStub.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.AsyncService.html
│   │       │   │   ├── AppCallbackHealthCheckGrpc.html
│   │       │   │   ├── CommonProtos.ConfigurationItem.Builder.html
│   │       │   │   ├── CommonProtos.ConfigurationItem.html
│   │       │   │   ├── CommonProtos.ConfigurationItemOrBuilder.html
│   │       │   │   ├── CommonProtos.Etag.Builder.html
│   │       │   │   ├── CommonProtos.Etag.html
│   │       │   │   ├── CommonProtos.EtagOrBuilder.html
│   │       │   │   ├── CommonProtos.HTTPExtension.Builder.html
│   │       │   │   ├── CommonProtos.HTTPExtension.Verb.html
│   │       │   │   ├── CommonProtos.HTTPExtension.html
│   │       │   │   ├── CommonProtos.HTTPExtensionOrBuilder.html
│   │       │   │   ├── CommonProtos.InvokeRequest.Builder.html
│   │       │   │   ├── CommonProtos.InvokeRequest.html
│   │       │   │   ├── CommonProtos.InvokeRequestOrBuilder.html
│   │       │   │   ├── CommonProtos.InvokeResponse.Builder.html
│   │       │   │   ├── CommonProtos.InvokeResponse.html
│   │       │   │   ├── CommonProtos.InvokeResponseOrBuilder.html
│   │       │   │   ├── CommonProtos.StateItem.Builder.html
│   │       │   │   ├── CommonProtos.StateItem.html
│   │       │   │   ├── CommonProtos.StateItemOrBuilder.html
│   │       │   │   ├── CommonProtos.StateOptions.Builder.html
│   │       │   │   ├── CommonProtos.StateOptions.StateConcurrency.html
│   │       │   │   ├── CommonProtos.StateOptions.StateConsistency.html
│   │       │   │   ├── CommonProtos.StateOptions.html
│   │       │   │   ├── CommonProtos.StateOptionsOrBuilder.html
│   │       │   │   ├── CommonProtos.StreamPayload.Builder.html
│   │       │   │   ├── CommonProtos.StreamPayload.html
│   │       │   │   ├── CommonProtos.StreamPayloadOrBuilder.html
│   │       │   │   ├── CommonProtos.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.BindingEventConcurrency.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.BindingEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfig.html
│   │       │   │   ├── DaprAppCallbackProtos.BulkSubscribeConfigOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.HealthCheckResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.JobEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.ListInputBindingsResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.ListTopicSubscriptionsResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.EventCase.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntry.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestEntryOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntry.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseEntryOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventBulkResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventCERequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequest.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequest.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventRequestOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.TopicEventResponseStatus.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponse.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicEventResponseOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutes.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutes.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRoutesOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRule.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRule.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicRuleOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscription.Builder.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscription.html
│   │       │   │   ├── DaprAppCallbackProtos.TopicSubscriptionOrBuilder.html
│   │       │   │   ├── DaprAppCallbackProtos.html
│   │       │   │   ├── DaprGrpc.AsyncService.html
│   │       │   │   ├── DaprGrpc.DaprBlockingStub.html
│   │       │   │   ├── DaprGrpc.DaprFutureStub.html
│   │       │   │   ├── DaprGrpc.DaprImplBase.html
│   │       │   │   ├── DaprGrpc.DaprStub.html
│   │       │   │   ├── DaprGrpc.html
│   │       │   │   ├── DaprProtos.ShutdownRequest.Builder.html
│   │       │   │   ├── DaprProtos.ShutdownRequest.html
│   │       │   │   ├── DaprProtos.ShutdownRequestOrBuilder.html
│   │       │   │   └── DaprProtos.html
│   │       │   ├── package-summary.html
│   │       │   ├── package-tree.html
│   │       │   └── package-use.html
│   │       └── workflows/
│   │           ├── Workflow.html
│   │           ├── WorkflowContext.html
│   │           ├── WorkflowStub.html
│   │           ├── class-use/
│   │           │   ├── Workflow.html
│   │           │   ├── WorkflowContext.html
│   │           │   └── WorkflowStub.html
│   │           ├── client/
│   │           │   ├── DaprWorkflowClient.html
│   │           │   ├── WorkflowFailureDetails.html
│   │           │   ├── WorkflowInstanceStatus.html
│   │           │   ├── class-use/
│   │           │   │   ├── DaprWorkflowClient.html
│   │           │   │   ├── WorkflowFailureDetails.html
│   │           │   │   └── WorkflowInstanceStatus.html
│   │           │   ├── package-summary.html
│   │           │   ├── package-tree.html
│   │           │   └── package-use.html
│   │           ├── internal/
│   │           │   ├── ApiTokenClientInterceptor.html
│   │           │   ├── class-use/
│   │           │   │   └── ApiTokenClientInterceptor.html
│   │           │   ├── package-summary.html
│   │           │   ├── package-tree.html
│   │           │   └── package-use.html
│   │           ├── package-summary.html
│   │           ├── package-tree.html
│   │           ├── package-use.html
│   │           └── runtime/
│   │               ├── WorkflowRuntime.html
│   │               ├── WorkflowRuntimeBuilder.html
│   │               ├── class-use/
│   │               │   ├── WorkflowRuntime.html
│   │               │   └── WorkflowRuntimeBuilder.html
│   │               ├── package-summary.html
│   │               ├── package-tree.html
│   │               └── package-use.html
│   ├── jquery-ui.overrides.css
│   ├── legal/
│   │   ├── ADDITIONAL_LICENSE_INFO
│   │   ├── ASSEMBLY_EXCEPTION
│   │   ├── LICENSE
│   │   ├── jquery.md
│   │   └── jqueryUI.md
│   ├── member-search-index.js
│   ├── module-search-index.js
│   ├── overview-summary.html
│   ├── overview-tree.html
│   ├── package-search-index.js
│   ├── project-reports.html
│   ├── script.js
│   ├── search.js
│   ├── serialized-form.html
│   ├── stylesheet.css
│   ├── tag-search-index.js
│   └── type-search-index.js
├── durabletask-client/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── durabletask/
│       │                   ├── CompositeTaskFailedException.java
│       │                   ├── DataConverter.java
│       │                   ├── DurableTaskClient.java
│       │                   ├── DurableTaskGrpcClient.java
│       │                   ├── DurableTaskGrpcClientBuilder.java
│       │                   ├── DurableTaskGrpcWorker.java
│       │                   ├── DurableTaskGrpcWorkerBuilder.java
│       │                   ├── FailureDetails.java
│       │                   ├── Helpers.java
│       │                   ├── JacksonDataConverter.java
│       │                   ├── NewOrchestrationInstanceOptions.java
│       │                   ├── NonDeterministicOrchestratorException.java
│       │                   ├── OrchestrationMetadata.java
│       │                   ├── OrchestrationRunner.java
│       │                   ├── OrchestrationRuntimeStatus.java
│       │                   ├── OrchestratorFunction.java
│       │                   ├── PurgeInstanceCriteria.java
│       │                   ├── PurgeResult.java
│       │                   ├── RetryContext.java
│       │                   ├── RetryHandler.java
│       │                   ├── RetryPolicy.java
│       │                   ├── Task.java
│       │                   ├── TaskActivity.java
│       │                   ├── TaskActivityContext.java
│       │                   ├── TaskActivityExecutor.java
│       │                   ├── TaskActivityFactory.java
│       │                   ├── TaskCanceledException.java
│       │                   ├── TaskFailedException.java
│       │                   ├── TaskOptions.java
│       │                   ├── TaskOrchestration.java
│       │                   ├── TaskOrchestrationContext.java
│       │                   ├── TaskOrchestrationExecutor.java
│       │                   ├── TaskOrchestratorResult.java
│       │                   ├── interruption/
│       │                   │   ├── ContinueAsNewInterruption.java
│       │                   │   └── OrchestratorBlockedException.java
│       │                   ├── orchestration/
│       │                   │   ├── TaskOrchestrationFactories.java
│       │                   │   ├── TaskOrchestrationFactory.java
│       │                   │   └── exception/
│       │                   │       └── VersionNotRegisteredException.java
│       │                   ├── runner/
│       │                   │   ├── ActivityRunner.java
│       │                   │   ├── DurableRunner.java
│       │                   │   └── OrchestratorRunner.java
│       │                   └── util/
│       │                       └── UuidGenerator.java
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── durabletask/
│                           ├── DurableTaskClientIT.java
│                           ├── DurableTaskGrpcClientTlsTest.java
│                           ├── DurableTaskGrpcWorkerReconnectTest.java
│                           ├── DurableTaskGrpcWorkerShutdownTest.java
│                           ├── ErrorHandlingIT.java
│                           ├── IntegrationTestBase.java
│                           ├── SubOrchestrationCrossAppTest.java
│                           └── TaskOptionsTest.java
├── examples/
│   ├── components/
│   │   ├── actors/
│   │   │   └── redis.yaml
│   │   ├── bindings/
│   │   │   └── kafka_bindings.yaml
│   │   ├── configuration/
│   │   │   └── redis_configstore.yaml
│   │   ├── conversation/
│   │   │   └── conversation.yaml
│   │   ├── crypto/
│   │   │   ├── keys/
│   │   │   │   └── .gitkeep
│   │   │   └── localstorage.yaml
│   │   ├── lock/
│   │   │   └── redis_lockstore.yaml
│   │   ├── pubsub/
│   │   │   └── redis_messagebus.yaml
│   │   ├── secrets/
│   │   │   └── local_file.yaml
│   │   ├── state/
│   │   │   ├── mongo.yaml
│   │   │   └── redis.yaml
│   │   └── workflows/
│   │       └── redis.yaml
│   ├── pom.xml
│   ├── proto/
│   │   └── helloworld.proto
│   ├── spotbugs-exclude.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           └── examples/
│           │               ├── DaprApplication.java
│           │               ├── DaprConfig.java
│           │               ├── DaprMainApplication.java
│           │               ├── OpenTelemetryConfig.java
│           │               ├── OpenTelemetryInterceptor.java
│           │               ├── OpenTelemetryInterceptorConfig.java
│           │               ├── actors/
│           │               │   ├── DemoActor.java
│           │               │   ├── DemoActorClient.java
│           │               │   ├── DemoActorImpl.java
│           │               │   ├── DemoActorService.java
│           │               │   └── README.md
│           │               ├── baggage/
│           │               │   ├── BaggageClient.java
│           │               │   └── README.md
│           │               ├── bindings/
│           │               │   └── http/
│           │               │       ├── InputBindingController.java
│           │               │       ├── InputBindingExample.java
│           │               │       ├── OutputBindingExample.java
│           │               │       ├── README.md
│           │               │       └── docker-compose-single-kafka.yml
│           │               ├── configuration/
│           │               │   ├── ConfigurationClient.java
│           │               │   └── README.md
│           │               ├── conversation/
│           │               │   ├── AssistantMessageDemo.java
│           │               │   ├── README.md
│           │               │   ├── ToolsCallDemo.java
│           │               │   ├── UsageUtils.java
│           │               │   └── UserMessageDemo.java
│           │               ├── crypto/
│           │               │   ├── CryptoExample.java
│           │               │   ├── README.md
│           │               │   └── StreamingCryptoExample.java
│           │               ├── exception/
│           │               │   ├── Client.java
│           │               │   └── README.md
│           │               ├── invoke/
│           │               │   ├── grpc/
│           │               │   │   ├── HelloWorldClient.java
│           │               │   │   ├── HelloWorldService.java
│           │               │   │   └── README.md
│           │               │   └── http/
│           │               │       ├── DemoService.java
│           │               │       ├── DemoServiceController.java
│           │               │       ├── InvokeClient.java
│           │               │       └── README.md
│           │               ├── jobs/
│           │               │   ├── DemoJobsClient.java
│           │               │   ├── DemoJobsSpringApplication.java
│           │               │   ├── JobsController.java
│           │               │   └── README.md
│           │               ├── lock/
│           │               │   ├── DistributedLockGrpcClient.java
│           │               │   └── README.md
│           │               ├── pubsub/
│           │               │   ├── BulkPublisher.java
│           │               │   ├── CloudEventBulkPublisher.java
│           │               │   ├── CloudEventPublisher.java
│           │               │   ├── Publisher.java
│           │               │   ├── PublisherWithTracing.java
│           │               │   ├── README.md
│           │               │   ├── grpc/
│           │               │   │   ├── Subscriber.java
│           │               │   │   └── SubscriberGrpcService.java
│           │               │   ├── http/
│           │               │   │   ├── Subscriber.java
│           │               │   │   └── SubscriberController.java
│           │               │   └── stream/
│           │               │       ├── README.md
│           │               │       ├── Subscriber.java
│           │               │       └── SubscriberCloudEvent.java
│           │               ├── querystate/
│           │               │   ├── Listing.java
│           │               │   ├── QuerySavedState.java
│           │               │   ├── README.md
│           │               │   └── docker-compose-single-mongo.yml
│           │               ├── secrets/
│           │               │   ├── README.md
│           │               │   ├── SecretClient.java
│           │               │   └── config.yaml
│           │               ├── state/
│           │               │   ├── README.md
│           │               │   ├── StateClient.java
│           │               │   └── docker-compose-single-mongo.yml
│           │               ├── tracing/
│           │               │   ├── InvokeClient.java
│           │               │   ├── README.md
│           │               │   ├── TracingDemoMiddleServiceController.java
│           │               │   ├── TracingDemoService.java
│           │               │   ├── TracingDemoServiceController.java
│           │               │   └── Validation.java
│           │               ├── unittesting/
│           │               │   ├── DaprExampleTest.java
│           │               │   ├── DaprWorkflowExampleTest.java
│           │               │   └── README.md
│           │               └── workflows/
│           │                   ├── README.md
│           │                   ├── chain/
│           │                   │   ├── DemoChainClient.java
│           │                   │   ├── DemoChainWorker.java
│           │                   │   ├── DemoChainWorkflow.java
│           │                   │   └── ToUpperCaseActivity.java
│           │                   ├── childworkflow/
│           │                   │   ├── DemoChildWorkerflowClient.java
│           │                   │   ├── DemoChildWorkflow.java
│           │                   │   ├── DemoChildWorkflowWorker.java
│           │                   │   ├── DemoWorkflow.java
│           │                   │   └── ReverseActivity.java
│           │                   ├── compensation/
│           │                   │   ├── BookCarActivity.java
│           │                   │   ├── BookFlightActivity.java
│           │                   │   ├── BookHotelActivity.java
│           │                   │   ├── BookTripClient.java
│           │                   │   ├── BookTripWorker.java
│           │                   │   ├── BookTripWorkflow.java
│           │                   │   ├── CancelCarActivity.java
│           │                   │   ├── CancelFlightActivity.java
│           │                   │   └── CancelHotelActivity.java
│           │                   ├── continueasnew/
│           │                   │   ├── CleanUpActivity.java
│           │                   │   ├── DemoContinueAsNewClient.java
│           │                   │   ├── DemoContinueAsNewWorker.java
│           │                   │   └── DemoContinueAsNewWorkflow.java
│           │                   ├── externalevent/
│           │                   │   ├── ApproveActivity.java
│           │                   │   ├── DemoExternalEventClient.java
│           │                   │   ├── DemoExternalEventWorker.java
│           │                   │   ├── DemoExternalEventWorkflow.java
│           │                   │   └── DenyActivity.java
│           │                   ├── faninout/
│           │                   │   ├── CountWordsActivity.java
│           │                   │   ├── DemoFanInOutClient.java
│           │                   │   ├── DemoFanInOutWorker.java
│           │                   │   └── DemoFanInOutWorkflow.java
│           │                   ├── multiapp/
│           │                   │   ├── App2TransformActivity.java
│           │                   │   ├── App2Worker.java
│           │                   │   ├── App3FinalizeActivity.java
│           │                   │   ├── App3Worker.java
│           │                   │   ├── MultiAppWorker.java
│           │                   │   ├── MultiAppWorkflow.java
│           │                   │   └── MultiAppWorkflowClient.java
│           │                   ├── suspendresume/
│           │                   │   ├── DemoSuspendResumeClient.java
│           │                   │   └── DemoSuspendResumeWorker.java
│           │                   └── utils/
│           │                       ├── PropertyUtils.java
│           │                       └── RetryUtils.java
│           └── resources/
│               └── logback.xml
├── mise.toml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── sdk/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── dapr/
│       │   │           ├── Rule.java
│       │   │           ├── Topic.java
│       │   │           ├── client/
│       │   │           │   ├── AbstractDaprClient.java
│       │   │           │   ├── DaprClient.java
│       │   │           │   ├── DaprClientBuilder.java
│       │   │           │   ├── DaprClientImpl.java
│       │   │           │   ├── DaprHttp.java
│       │   │           │   ├── DaprHttpBuilder.java
│       │   │           │   ├── DaprPreviewClient.java
│       │   │           │   ├── GrpcChannelFacade.java
│       │   │           │   ├── Headers.java
│       │   │           │   ├── ObjectSerializer.java
│       │   │           │   ├── ProtobufValueHelper.java
│       │   │           │   ├── Subscription.java
│       │   │           │   ├── SubscriptionListener.java
│       │   │           │   ├── domain/
│       │   │           │   │   ├── ActorMetadata.java
│       │   │           │   │   ├── AppConnectionPropertiesHealthMetadata.java
│       │   │           │   │   ├── AppConnectionPropertiesMetadata.java
│       │   │           │   │   ├── AssistantMessage.java
│       │   │           │   │   ├── BulkPublishEntry.java
│       │   │           │   │   ├── BulkPublishRequest.java
│       │   │           │   │   ├── BulkPublishResponse.java
│       │   │           │   │   ├── BulkPublishResponseFailedEntry.java
│       │   │           │   │   ├── BulkSubscribeAppResponse.java
│       │   │           │   │   ├── BulkSubscribeAppResponseEntry.java
│       │   │           │   │   ├── BulkSubscribeAppResponseStatus.java
│       │   │           │   │   ├── BulkSubscribeMessage.java
│       │   │           │   │   ├── BulkSubscribeMessageEntry.java
│       │   │           │   │   ├── CloudEvent.java
│       │   │           │   │   ├── ComponentMetadata.java
│       │   │           │   │   ├── ConfigurationItem.java
│       │   │           │   │   ├── ConstantFailurePolicy.java
│       │   │           │   │   ├── ConversationInput.java
│       │   │           │   │   ├── ConversationInputAlpha2.java
│       │   │           │   │   ├── ConversationMessage.java
│       │   │           │   │   ├── ConversationMessageContent.java
│       │   │           │   │   ├── ConversationMessageRole.java
│       │   │           │   │   ├── ConversationOutput.java
│       │   │           │   │   ├── ConversationRequest.java
│       │   │           │   │   ├── ConversationRequestAlpha2.java
│       │   │           │   │   ├── ConversationResponse.java
│       │   │           │   │   ├── ConversationResponseAlpha2.java
│       │   │           │   │   ├── ConversationResultAlpha2.java
│       │   │           │   │   ├── ConversationResultChoices.java
│       │   │           │   │   ├── ConversationResultCompletionUsage.java
│       │   │           │   │   ├── ConversationResultCompletionUsageDetails.java
│       │   │           │   │   ├── ConversationResultMessage.java
│       │   │           │   │   ├── ConversationResultPromptUsageDetails.java
│       │   │           │   │   ├── ConversationToolCalls.java
│       │   │           │   │   ├── ConversationToolCallsOfFunction.java
│       │   │           │   │   ├── ConversationTools.java
│       │   │           │   │   ├── ConversationToolsFunction.java
│       │   │           │   │   ├── DaprMetadata.java
│       │   │           │   │   ├── DecryptRequestAlpha1.java
│       │   │           │   │   ├── DeleteJobRequest.java
│       │   │           │   │   ├── DeleteStateRequest.java
│       │   │           │   │   ├── DeveloperMessage.java
│       │   │           │   │   ├── DropFailurePolicy.java
│       │   │           │   │   ├── EncryptRequestAlpha1.java
│       │   │           │   │   ├── ExecuteStateTransactionRequest.java
│       │   │           │   │   ├── FailurePolicy.java
│       │   │           │   │   ├── FailurePolicyType.java
│       │   │           │   │   ├── GetBulkSecretRequest.java
│       │   │           │   │   ├── GetBulkStateRequest.java
│       │   │           │   │   ├── GetConfigurationRequest.java
│       │   │           │   │   ├── GetJobRequest.java
│       │   │           │   │   ├── GetJobResponse.java
│       │   │           │   │   ├── GetSecretRequest.java
│       │   │           │   │   ├── GetStateRequest.java
│       │   │           │   │   ├── HttpEndpointMetadata.java
│       │   │           │   │   ├── HttpExtension.java
│       │   │           │   │   ├── InvokeBindingRequest.java
│       │   │           │   │   ├── InvokeMethodRequest.java
│       │   │           │   │   ├── JobSchedule.java
│       │   │           │   │   ├── LockRequest.java
│       │   │           │   │   ├── Metadata.java
│       │   │           │   │   ├── PublishEventRequest.java
│       │   │           │   │   ├── QueryStateItem.java
│       │   │           │   │   ├── QueryStateRequest.java
│       │   │           │   │   ├── QueryStateResponse.java
│       │   │           │   │   ├── RuleMetadata.java
│       │   │           │   │   ├── SaveStateRequest.java
│       │   │           │   │   ├── ScheduleJobRequest.java
│       │   │           │   │   ├── State.java
│       │   │           │   │   ├── StateOptions.java
│       │   │           │   │   ├── SubscribeConfigurationRequest.java
│       │   │           │   │   ├── SubscribeConfigurationResponse.java
│       │   │           │   │   ├── SubscriptionMetadata.java
│       │   │           │   │   ├── SystemMessage.java
│       │   │           │   │   ├── ToolMessage.java
│       │   │           │   │   ├── TransactionalStateOperation.java
│       │   │           │   │   ├── TransactionalStateRequest.java
│       │   │           │   │   ├── UnlockRequest.java
│       │   │           │   │   ├── UnlockResponseStatus.java
│       │   │           │   │   ├── UnsubscribeConfigurationRequest.java
│       │   │           │   │   ├── UnsubscribeConfigurationResponse.java
│       │   │           │   │   ├── UserMessage.java
│       │   │           │   │   └── query/
│       │   │           │   │       ├── Pagination.java
│       │   │           │   │       ├── Query.java
│       │   │           │   │       ├── Sorting.java
│       │   │           │   │       └── filters/
│       │   │           │   │           ├── AndFilter.java
│       │   │           │   │           ├── EqFilter.java
│       │   │           │   │           ├── Filter.java
│       │   │           │   │           ├── InFilter.java
│       │   │           │   │           └── OrFilter.java
│       │   │           │   └── resiliency/
│       │   │           │       └── ResiliencyOptions.java
│       │   │           ├── config/
│       │   │           │   ├── BooleanProperty.java
│       │   │           │   ├── GenericProperty.java
│       │   │           │   ├── IntegerProperty.java
│       │   │           │   ├── MillisecondsDurationProperty.java
│       │   │           │   ├── Properties.java
│       │   │           │   ├── Property.java
│       │   │           │   ├── SecondsDurationProperty.java
│       │   │           │   └── StringProperty.java
│       │   │           ├── exceptions/
│       │   │           │   ├── DaprError.java
│       │   │           │   ├── DaprErrorDetails.java
│       │   │           │   └── DaprException.java
│       │   │           ├── internal/
│       │   │           │   ├── exceptions/
│       │   │           │   │   └── DaprHttpException.java
│       │   │           │   ├── grpc/
│       │   │           │   │   ├── DaprClientGrpcInterceptors.java
│       │   │           │   │   └── interceptors/
│       │   │           │   │       ├── DaprApiTokenInterceptor.java
│       │   │           │   │       ├── DaprAppIdInterceptor.java
│       │   │           │   │       ├── DaprBaggageInterceptor.java
│       │   │           │   │       ├── DaprMetadataReceiverInterceptor.java
│       │   │           │   │       ├── DaprTimeoutInterceptor.java
│       │   │           │   │       └── DaprTracingInterceptor.java
│       │   │           │   ├── opencensus/
│       │   │           │   │   ├── BigendianEncoding.java
│       │   │           │   │   ├── BinaryFormatImpl.java
│       │   │           │   │   ├── GrpcHelper.java
│       │   │           │   │   ├── SpanContext.java
│       │   │           │   │   ├── SpanId.java
│       │   │           │   │   ├── TraceContextFormat.java
│       │   │           │   │   ├── TraceId.java
│       │   │           │   │   ├── TraceOptions.java
│       │   │           │   │   ├── Tracestate.java
│       │   │           │   │   └── Utils.java
│       │   │           │   ├── resiliency/
│       │   │           │   │   ├── RetryPolicy.java
│       │   │           │   │   └── TimeoutPolicy.java
│       │   │           │   └── subscription/
│       │   │           │       └── EventSubscriberStreamObserver.java
│       │   │           ├── serializer/
│       │   │           │   ├── CustomizableObjectSerializer.java
│       │   │           │   ├── DaprObjectSerializer.java
│       │   │           │   └── DefaultObjectSerializer.java
│       │   │           └── utils/
│       │   │               ├── DefaultContentTypeConverter.java
│       │   │               ├── DurationUtils.java
│       │   │               ├── FailurePolicyUtils.java
│       │   │               ├── NetworkUtils.java
│       │   │               ├── ProtobufUtils.java
│       │   │               ├── TypeRef.java
│       │   │               └── Version.java
│       │   └── resources/
│       │       └── sdk_version.properties
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           ├── client/
│           │           │   ├── CloudEventCustom.java
│           │           │   ├── CloudEventCustomTest.java
│           │           │   ├── CloudEventTest.java
│           │           │   ├── DaprClientBuilderTest.java
│           │           │   ├── DaprClientGrpcBaggageTest.java
│           │           │   ├── DaprClientGrpcTelemetryTest.java
│           │           │   ├── DaprClientGrpcTest.java
│           │           │   ├── DaprClientHttpTest.java
│           │           │   ├── DaprClientTestBuilder.java
│           │           │   ├── DaprExceptionTest.java
│           │           │   ├── DaprHttpBuilderTest.java
│           │           │   ├── DaprHttpStub.java
│           │           │   ├── DaprHttpTest.java
│           │           │   ├── DaprPreviewClientGrpcTest.java
│           │           │   ├── MockHttpResponse.java
│           │           │   ├── ProtobufValueHelperTest.java
│           │           │   └── domain/
│           │           │       ├── BulkPublishEntryTest.java
│           │           │       ├── BulkPublishRequestTest.java
│           │           │       ├── ConfigurationItemTest.java
│           │           │       ├── DecryptRequestAlpha1Test.java
│           │           │       ├── DeleteStateRequestTest.java
│           │           │       ├── EncryptRequestAlpha1Test.java
│           │           │       ├── ExecuteStateTransactionRequestTest.java
│           │           │       ├── GetBulkSecretRequestTest.java
│           │           │       ├── GetBulkStateRequestTest.java
│           │           │       ├── GetSecretRequestTest.java
│           │           │       ├── GetStateRequestTest.java
│           │           │       ├── HttpExtensionTest.java
│           │           │       ├── InvokeBindingRequestTest.java
│           │           │       ├── JobsScheduleTest.java
│           │           │       ├── PublishEventRequestTest.java
│           │           │       ├── QueryStateRequestTest.java
│           │           │       ├── SaveStateRequestTest.java
│           │           │       ├── StateTest.java
│           │           │       ├── TestData.java
│           │           │       ├── TransactionalStateRequestTest.java
│           │           │       └── query/
│           │           │           ├── QueryTest.java
│           │           │           └── filters/
│           │           │               ├── AndFilterTest.java
│           │           │               ├── EqFilterTest.java
│           │           │               ├── InFilterTest.java
│           │           │               └── OrFilterTest.java
│           │           ├── config/
│           │           │   └── IntegerPropertyTest.java
│           │           ├── internal/
│           │           │   └── subscription/
│           │           │       └── EventSubscriberStreamObserverTest.java
│           │           ├── resiliency/
│           │           │   └── RetryPolicyTest.java
│           │           ├── runtime/
│           │           │   ├── Dapr.java
│           │           │   ├── DaprRuntime.java
│           │           │   ├── DaprRuntimeTest.java
│           │           │   ├── MethodListener.java
│           │           │   └── TopicListener.java
│           │           ├── serializer/
│           │           │   ├── CustomObjectSerializerTest.java
│           │           │   ├── DefaultObjectSerializerTest.java
│           │           │   └── FailurePolicySerializerTest.java
│           │           └── utils/
│           │               ├── DefaultContentTypeConverterTest.java
│           │               ├── DurationUtilsTest.java
│           │               ├── NetworkUtilsTest.java
│           │               ├── TestUtils.java
│           │               └── TypeRefTest.java
│           └── resources/
│               ├── certs/
│               │   ├── test-ca-cert.key
│               │   ├── test-ca-cert.pem
│               │   ├── test-cert.key
│               │   └── test-cert.pem
│               └── mockito-extensions/
│                   └── org.mockito.plugins.MockMaker
├── sdk-actors/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── actors/
│       │                   ├── ActorId.java
│       │                   ├── ActorMethod.java
│       │                   ├── ActorTrace.java
│       │                   ├── ActorType.java
│       │                   ├── ActorUtils.java
│       │                   ├── Undefined.java
│       │                   ├── client/
│       │                   │   ├── ActorClient.java
│       │                   │   ├── ActorProxy.java
│       │                   │   ├── ActorProxyBuilder.java
│       │                   │   ├── ActorProxyImpl.java
│       │                   │   ├── DaprClient.java
│       │                   │   └── DaprClientImpl.java
│       │                   └── runtime/
│       │                       ├── AbstractActor.java
│       │                       ├── ActorCallType.java
│       │                       ├── ActorFactory.java
│       │                       ├── ActorManager.java
│       │                       ├── ActorMethodContext.java
│       │                       ├── ActorMethodInfoMap.java
│       │                       ├── ActorObjectSerializer.java
│       │                       ├── ActorReminderParams.java
│       │                       ├── ActorRuntime.java
│       │                       ├── ActorRuntimeConfig.java
│       │                       ├── ActorRuntimeContext.java
│       │                       ├── ActorStateChange.java
│       │                       ├── ActorStateChangeKind.java
│       │                       ├── ActorStateManager.java
│       │                       ├── ActorStateOperation.java
│       │                       ├── ActorTimerParams.java
│       │                       ├── ActorTypeConfig.java
│       │                       ├── ActorTypeInformation.java
│       │                       ├── ActorTypeUtilities.java
│       │                       ├── DaprClient.java
│       │                       ├── DaprClientImpl.java
│       │                       ├── DaprStateAsyncProvider.java
│       │                       ├── DefaultActorFactory.java
│       │                       └── Remindable.java
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           └── actors/
│           │               ├── ActorIdTest.java
│           │               ├── TestUtils.java
│           │               ├── client/
│           │               │   ├── ActorProxyBuilderTest.java
│           │               │   ├── ActorProxyImplForTests.java
│           │               │   ├── ActorProxyImplTest.java
│           │               │   ├── DaprClientStub.java
│           │               │   └── DaprGrpcClientTest.java
│           │               └── runtime/
│           │                   ├── ActorCustomSerializerTest.java
│           │                   ├── ActorManagerTest.java
│           │                   ├── ActorMethodInfoMapTest.java
│           │                   ├── ActorNoStateTest.java
│           │                   ├── ActorReminderParamsTest.java
│           │                   ├── ActorRuntimeTest.java
│           │                   ├── ActorStatefulTest.java
│           │                   ├── ActorTimerTest.java
│           │                   ├── ActorTypeInformationTest.java
│           │                   ├── ActorTypeUtilitiesTest.java
│           │                   ├── DaprGrpcClientTest.java
│           │                   ├── DaprInMemoryStateProvider.java
│           │                   ├── DaprStateAsyncProviderTest.java
│           │                   ├── DefaultActorFactoryTest.java
│           │                   ├── DerivedActorTest.java
│           │                   ├── JavaSerializer.java
│           │                   └── ThrowFromPreAndPostActorMethodsTest.java
│           └── resources/
│               └── mockito-extensions/
│                   └── org.mockito.plugins.MockMaker
├── sdk-autogen/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── .keepme
│       └── test/
│           └── java/
│               └── .keepme
├── sdk-bom/
│   └── pom.xml
├── sdk-springboot/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── dapr/
│       │   │           └── springboot/
│       │   │               ├── DaprAutoConfiguration.java
│       │   │               ├── DaprBeanPostProcessor.java
│       │   │               ├── DaprController.java
│       │   │               ├── DaprRuntime.java
│       │   │               ├── DaprSubscriptionBuilder.java
│       │   │               ├── DaprTopicBulkSubscribe.java
│       │   │               ├── DaprTopicKey.java
│       │   │               ├── DaprTopicRoutes.java
│       │   │               ├── DaprTopicRule.java
│       │   │               ├── DaprTopicSubscription.java
│       │   │               └── annotations/
│       │   │                   └── BulkSubscribe.java
│       │   └── resources/
│       │       └── META-INF/
│       │           └── spring/
│       │               └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── springboot/
│                           ├── DaprBeanPostProcessorSubscribeTest.java
│                           ├── DaprBeanPostProcessorTest.java
│                           ├── DaprRuntimeTest.java
│                           ├── DaprTopicBulkSubscribeTest.java
│                           ├── MockController.java
│                           ├── MockControllerNoClazzAnnotation.java
│                           ├── MockControllerWithSubscribe.java
│                           └── MockStringValueResolver.java
├── sdk-tests/
│   ├── .hashicorp_vault_token
│   ├── components/
│   │   ├── http_binding.yaml
│   │   ├── kafka_bindings.yaml
│   │   ├── mongo-statestore.yml
│   │   ├── pubsub.yaml
│   │   ├── redisconfigstore.yaml
│   │   ├── resiliency.yaml
│   │   ├── secret.json
│   │   ├── secretstore.yaml
│   │   └── statestore.yaml
│   ├── configurations/
│   │   └── configuration.yaml
│   ├── deploy/
│   │   └── local-test.yml
│   ├── pom.xml
│   ├── proto/
│   │   └── methodinvokeservice.proto
│   └── src/
│       └── test/
│           ├── java/
│           │   └── io/
│           │       └── dapr/
│           │           ├── actors/
│           │           │   └── runtime/
│           │           │       └── DaprClientHttpUtils.java
│           │           ├── grpc/
│           │           │   └── GrpcHealthCheckService.java
│           │           ├── it/
│           │           │   ├── AppRun.java
│           │           │   ├── BaseIT.java
│           │           │   ├── Command.java
│           │           │   ├── DaprPorts.java
│           │           │   ├── DaprRun.java
│           │           │   ├── DaprRunConfig.java
│           │           │   ├── Retry.java
│           │           │   ├── Stoppable.java
│           │           │   ├── TestUtils.java
│           │           │   ├── ToxiProxyRun.java
│           │           │   ├── actors/
│           │           │   │   ├── ActivationDeactivationIT.java
│           │           │   │   ├── ActorExceptionIT.java
│           │           │   │   ├── ActorMethodNameIT.java
│           │           │   │   ├── ActorReminderFailoverIT.java
│           │           │   │   ├── ActorReminderRecoveryIT.java
│           │           │   │   ├── ActorSdkResiliencyIT.java
│           │           │   │   ├── ActorStateIT.java
│           │           │   │   ├── ActorTimerRecoveryIT.java
│           │           │   │   ├── ActorTurnBasedConcurrencyIT.java
│           │           │   │   ├── MethodEntryTracker.java
│           │           │   │   ├── MyActorTestUtils.java
│           │           │   │   ├── app/
│           │           │   │   │   ├── ActorReminderDataParam.java
│           │           │   │   │   ├── MyActor.java
│           │           │   │   │   ├── MyActorBase.java
│           │           │   │   │   ├── MyActorBinaryImpl.java
│           │           │   │   │   ├── MyActorObjectImpl.java
│           │           │   │   │   ├── MyActorService.java
│           │           │   │   │   ├── MyActorStringImpl.java
│           │           │   │   │   ├── MyObject.java
│           │           │   │   │   └── TestApplication.java
│           │           │   │   └── services/
│           │           │   │       └── springboot/
│           │           │   │           ├── DaprApplication.java
│           │           │   │           ├── DemoActor.java
│           │           │   │           ├── DemoActorImpl.java
│           │           │   │           ├── DemoActorService.java
│           │           │   │           ├── StatefulActor.java
│           │           │   │           ├── StatefulActorImpl.java
│           │           │   │           └── StatefulActorService.java
│           │           │   ├── api/
│           │           │   │   └── ApiIT.java
│           │           │   ├── binding/
│           │           │   │   └── http/
│           │           │   │       ├── BindingIT.java
│           │           │   │       ├── InputBindingController.java
│           │           │   │       └── InputBindingService.java
│           │           │   ├── configuration/
│           │           │   │   └── ConfigurationClientIT.java
│           │           │   ├── methodinvoke/
│           │           │   │   ├── grpc/
│           │           │   │   │   ├── MethodInvokeIT.java
│           │           │   │   │   └── MethodInvokeService.java
│           │           │   │   └── http/
│           │           │   │       ├── MethodInvokeController.java
│           │           │   │       ├── MethodInvokeIT.java
│           │           │   │       ├── MethodInvokeService.java
│           │           │   │       └── Person.java
│           │           │   ├── pubsub/
│           │           │   │   ├── http/
│           │           │   │   │   ├── PubSubIT.java
│           │           │   │   │   ├── SubscriberController.java
│           │           │   │   │   └── SubscriberService.java
│           │           │   │   └── stream/
│           │           │   │       └── PubSubStreamIT.java
│           │           │   ├── resiliency/
│           │           │   │   ├── SdkResiliencyIT.java
│           │           │   │   └── WaitForSidecarIT.java
│           │           │   ├── secrets/
│           │           │   │   └── SecretsClientIT.java
│           │           │   ├── spring/
│           │           │   │   ├── data/
│           │           │   │   │   ├── CustomMySQLContainer.java
│           │           │   │   │   ├── DaprKeyValueRepositoryIT.java
│           │           │   │   │   ├── DaprSpringDataConstants.java
│           │           │   │   │   ├── MySQLDaprKeyValueTemplateIT.java
│           │           │   │   │   ├── PostgreSQLDaprKeyValueTemplateIT.java
│           │           │   │   │   ├── TestDaprSpringDataConfiguration.java
│           │           │   │   │   ├── TestType.java
│           │           │   │   │   └── TestTypeRepository.java
│           │           │   │   └── messaging/
│           │           │   │       ├── DaprSpringMessagingIT.java
│           │           │   │       ├── TestApplication.java
│           │           │   │       └── TestRestController.java
│           │           │   ├── state/
│           │           │   │   ├── AbstractStateClientIT.java
│           │           │   │   ├── GRPCStateClientIT.java
│           │           │   │   ├── HelloWorldClientIT.java
│           │           │   │   ├── HelloWorldGrpcStateService.java
│           │           │   │   └── MyData.java
│           │           │   ├── testcontainers/
│           │           │   │   ├── ContainerConstants.java
│           │           │   │   ├── DaprClientConfiguration.java
│           │           │   │   ├── DaprClientFactory.java
│           │           │   │   ├── DaprPreviewClientConfiguration.java
│           │           │   │   ├── SubscriptionsRestController.java
│           │           │   │   ├── actors/
│           │           │   │   │   ├── DaprActorsIT.java
│           │           │   │   │   ├── TestActor.java
│           │           │   │   │   ├── TestActorImpl.java
│           │           │   │   │   ├── TestActorsApplication.java
│           │           │   │   │   └── TestDaprActorsConfiguration.java
│           │           │   │   ├── conversations/
│           │           │   │   │   ├── DaprConversationAlpha2IT.java
│           │           │   │   │   ├── DaprConversationIT.java
│           │           │   │   │   └── TestConversationApplication.java
│           │           │   │   ├── core/
│           │           │   │   │   ├── DaprContainerIT.java
│           │           │   │   │   ├── DaprPlacementContainerIT.java
│           │           │   │   │   └── DaprSchedulerContainerIT.java
│           │           │   │   ├── crypto/
│           │           │   │   │   └── DaprPreviewClientCryptoIT.java
│           │           │   │   ├── jobs/
│           │           │   │   │   ├── DaprJobsIT.java
│           │           │   │   │   └── TestJobsApplication.java
│           │           │   │   ├── pubsub/
│           │           │   │   │   ├── http/
│           │           │   │   │   │   ├── DaprPubSubIT.java
│           │           │   │   │   │   ├── SubscriberController.java
│           │           │   │   │   │   └── TestPubSubApplication.java
│           │           │   │   │   └── outbox/
│           │           │   │   │       ├── DaprPubSubOutboxIT.java
│           │           │   │   │       ├── Product.java
│           │           │   │   │       ├── ProductWebhookController.java
│           │           │   │   │       └── TestPubsubOutboxApplication.java
│           │           │   │   └── workflows/
│           │           │   │       ├── DaprWorkflowsIT.java
│           │           │   │       ├── FirstActivity.java
│           │           │   │       ├── KeyStore.java
│           │           │   │       ├── SecondActivity.java
│           │           │   │       ├── TaskExecutionIdActivity.java
│           │           │   │       ├── TestExecutionKeysWorkflow.java
│           │           │   │       ├── TestNamedActivitiesWorkflow.java
│           │           │   │       ├── TestWorkflow.java
│           │           │   │       ├── TestWorkflowPayload.java
│           │           │   │       ├── TestWorkflowsApplication.java
│           │           │   │       ├── TestWorkflowsConfiguration.java
│           │           │   │       ├── multiapp/
│           │           │   │       │   ├── App2TransformActivity.java
│           │           │   │       │   ├── App2Worker.java
│           │           │   │       │   ├── App3FinalizeActivity.java
│           │           │   │       │   ├── App3Worker.java
│           │           │   │       │   ├── ChildTransformActivity.java
│           │           │   │       │   ├── MultiAppWorker.java
│           │           │   │       │   ├── MultiAppWorkflow.java
│           │           │   │       │   ├── SubOrchestrationChildWorker.java
│           │           │   │       │   ├── SubOrchestrationChildWorkflow.java
│           │           │   │       │   ├── SubOrchestrationParentWorker.java
│           │           │   │       │   ├── SubOrchestrationParentWorkflow.java
│           │           │   │       │   ├── WorkflowsMultiAppCallActivityIT.java
│           │           │   │       │   └── WorkflowsMultiAppSubOrchestrationIT.java
│           │           │   │       └── version/
│           │           │   │           ├── full/
│           │           │   │           │   ├── FullVersioningWorkflowsIT.java
│           │           │   │           │   ├── VersionedWorkflows.java
│           │           │   │           │   ├── WorkflowV1Worker.java
│           │           │   │           │   └── WorkflowV2Worker.java
│           │           │   │           └── patch/
│           │           │   │               ├── PatchVersioningWorkflowsIT.java
│           │           │   │               ├── PatchedWorkflows.java
│           │           │   │               ├── WorkflowV1Worker.java
│           │           │   │               └── WorkflowV2Worker.java
│           │           │   └── tracing/
│           │           │       ├── OpenTelemetry.java
│           │           │       ├── Validation.java
│           │           │       ├── grpc/
│           │           │       │   ├── Service.java
│           │           │       │   └── TracingIT.java
│           │           │       └── http/
│           │           │           ├── Controller.java
│           │           │           ├── OpenTelemetryConfig.java
│           │           │           ├── OpenTelemetryInterceptor.java
│           │           │           ├── OpenTelemetryInterceptorConfig.java
│           │           │           ├── Service.java
│           │           │           └── TracingIT.java
│           │           └── testcontainers/
│           │               └── internal/
│           │                   ├── DaprContainerFactory.java
│           │                   ├── DaprSidecarContainer.java
│           │                   └── spring/
│           │                       ├── DaprSpringBootContextInitializer.java
│           │                       ├── DaprSpringBootExtension.java
│           │                       └── DaprSpringBootTest.java
│           └── resources/
│               ├── logback.xml
│               └── query.json
├── sdk-workflows/
│   ├── pom.xml
│   ├── spotbugs-exclude.xml
│   └── src/
│       ├── main/
│       │   └── java/
│       │       └── io/
│       │           └── dapr/
│       │               └── workflows/
│       │                   ├── Workflow.java
│       │                   ├── WorkflowActivity.java
│       │                   ├── WorkflowActivityContext.java
│       │                   ├── WorkflowContext.java
│       │                   ├── WorkflowStub.java
│       │                   ├── WorkflowTaskOptions.java
│       │                   ├── WorkflowTaskRetryContext.java
│       │                   ├── WorkflowTaskRetryHandler.java
│       │                   ├── WorkflowTaskRetryPolicy.java
│       │                   ├── client/
│       │                   │   ├── DaprWorkflowClient.java
│       │                   │   ├── NewWorkflowOptions.java
│       │                   │   ├── WorkflowFailureDetails.java
│       │                   │   ├── WorkflowInstanceStatus.java
│       │                   │   ├── WorkflowRuntimeStatus.java
│       │                   │   └── WorkflowState.java
│       │                   ├── internal/
│       │                   │   └── ApiTokenClientInterceptor.java
│       │                   └── runtime/
│       │                       ├── DefaultWorkflowActivityContext.java
│       │                       ├── DefaultWorkflowContext.java
│       │                       ├── DefaultWorkflowFailureDetails.java
│       │                       ├── DefaultWorkflowInstanceStatus.java
│       │                       ├── DefaultWorkflowState.java
│       │                       ├── WorkflowActivityClassWrapper.java
│       │                       ├── WorkflowActivityInstanceWrapper.java
│       │                       ├── WorkflowClassWrapper.java
│       │                       ├── WorkflowInstanceWrapper.java
│       │                       ├── WorkflowRuntime.java
│       │                       ├── WorkflowRuntimeBuilder.java
│       │                       ├── WorkflowRuntimeStatusConverter.java
│       │                       └── WorkflowVersionWrapper.java
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── workflows/
│                           ├── DefaultWorkflowContextTest.java
│                           ├── WorkflowTaskOptionsTest.java
│                           ├── WorkflowTest.java
│                           ├── client/
│                           │   ├── DaprWorkflowClientTest.java
│                           │   ├── NewWorkflowOptionsTest.java
│                           │   ├── WorkflowInstanceStatusTest.java
│                           │   └── WorkflowStateTest.java
│                           └── runtime/
│                               ├── DefaultWorkflowActivityContextTest.java
│                               ├── WorkflowActivityClassWrapperTest.java
│                               ├── WorkflowActivityInstanceWrapperTest.java
│                               ├── WorkflowClassWrapperTest.java
│                               ├── WorkflowInstanceWrapperTest.java
│                               ├── WorkflowRuntimeBuilderTest.java
│                               ├── WorkflowRuntimeStatusConverterTest.java
│                               ├── WorkflowRuntimeTest.java
│                               └── WorkflowVersionWrapperTest.java
├── settings.xml
├── spotbugs-exclude.xml
├── spring-boot-4-examples/
│   ├── consumer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot4/
│   │       │   │               └── examples/
│   │       │   │                   └── consumer/
│   │       │   │                       ├── ConsumerApplication.java
│   │       │   │                       ├── Order.java
│   │       │   │                       └── SubscriberRestController.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── springboot4/
│   │                           └── examples/
│   │                               └── consumer/
│   │                                   ├── ConsumerAppIT.java
│   │                                   ├── ConsumerAppTestConfiguration.java
│   │                                   ├── DaprTestContainersConfig.java
│   │                                   └── TestConsumerApplication.java
│   ├── pom.xml
│   ├── producer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot4/
│   │       │   │               └── examples/
│   │       │   │                   └── producer/
│   │       │   │                       ├── Customer.java
│   │       │   │                       ├── CustomerStore.java
│   │       │   │                       ├── CustomersRestController.java
│   │       │   │                       ├── Jackson3SerializerConfiguration.java
│   │       │   │                       ├── Order.java
│   │       │   │                       ├── OrderDTO.java
│   │       │   │                       ├── OrderRepository.java
│   │       │   │                       ├── OrdersRestController.java
│   │       │   │                       ├── ProducerAppConfiguration.java
│   │       │   │                       ├── ProducerApplication.java
│   │       │   │                       └── workflow/
│   │       │   │                           ├── CustomerFollowupActivity.java
│   │       │   │                           ├── CustomerWorkflow.java
│   │       │   │                           └── RegisterCustomerActivity.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── dapr/
│   │                       └── springboot4/
│   │                           └── examples/
│   │                               └── producer/
│   │                                   ├── DaprTestContainersConfig.java
│   │                                   ├── ProducerAppIT.java
│   │                                   ├── TestProducerApplication.java
│   │                                   └── TestSubscriberRestController.java
│   └── workflows/
│       ├── multi-app/
│       │   ├── README.md
│       │   ├── orchestrator/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot4/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── orchestrator/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── CustomerWorkflow.java
│       │   │       │   │                       ├── CustomersRestController.java
│       │   │       │   │                       └── OrchestratorApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot4/
│       │   │           │               └── examples/
│       │   │           │                   └── orchestrator/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── DockerImages.java
│       │   │           │                       ├── OrchestratorAppIT.java
│       │   │           │                       └── TestOrchestratorApplication.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   ├── pom.xml
│       │   ├── spotbugs-exclude.xml
│       │   ├── worker-one/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot4/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── workerone/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── RegisterCustomerActivity.java
│       │   │       │   │                       └── WorkerOneApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot4/
│       │   │           │               └── examples/
│       │   │           │                   └── workerone/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── TestWorkerOneApplication.java
│       │   │           │                       └── WorkerOneAppIT.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   └── worker-two/
│       │       ├── pom.xml
│       │       └── src/
│       │           ├── main/
│       │           │   ├── java/
│       │           │   │   └── io/
│       │           │   │       └── dapr/
│       │           │   │           └── springboot4/
│       │           │   │               └── examples/
│       │           │   │                   └── workertwo/
│       │           │   │                       ├── Customer.java
│       │           │   │                       ├── CustomerFollowupActivity.java
│       │           │   │                       └── WorkerTwoApplication.java
│       │           │   └── resources/
│       │           │       └── application.properties
│       │           └── test/
│       │               ├── java/
│       │               │   └── io/
│       │               │       └── dapr/
│       │               │           └── springboot4/
│       │               │               └── examples/
│       │               │                   └── workertwo/
│       │               │                       ├── DaprTestContainersConfig.java
│       │               │                       ├── TestWorkerTwoApplication.java
│       │               │                       └── WorkerTwoAppIT.java
│       │               └── resources/
│       │                   └── application.properties
│       ├── patterns/
│       │   ├── README.md
│       │   ├── body.json
│       │   ├── pom.xml
│       │   └── src/
│       │       ├── main/
│       │       │   ├── java/
│       │       │   │   └── io/
│       │       │   │       └── dapr/
│       │       │   │           └── springboot4/
│       │       │   │               └── examples/
│       │       │   │                   └── wfp/
│       │       │   │                       ├── WorkflowPatternsApplication.java
│       │       │   │                       ├── WorkflowPatternsConfiguration.java
│       │       │   │                       ├── WorkflowPatternsRestController.java
│       │       │   │                       ├── chain/
│       │       │   │                       │   ├── ChainWorkflow.java
│       │       │   │                       │   └── ToUpperCaseActivity.java
│       │       │   │                       ├── child/
│       │       │   │                       │   ├── ChildWorkflow.java
│       │       │   │                       │   ├── ParentWorkflow.java
│       │       │   │                       │   └── ReverseActivity.java
│       │       │   │                       ├── continueasnew/
│       │       │   │                       │   ├── CleanUpActivity.java
│       │       │   │                       │   ├── CleanUpLog.java
│       │       │   │                       │   └── ContinueAsNewWorkflow.java
│       │       │   │                       ├── externalevent/
│       │       │   │                       │   ├── ApproveActivity.java
│       │       │   │                       │   ├── Decision.java
│       │       │   │                       │   ├── DenyActivity.java
│       │       │   │                       │   └── ExternalEventWorkflow.java
│       │       │   │                       ├── fanoutin/
│       │       │   │                       │   ├── CountWordsActivity.java
│       │       │   │                       │   ├── FanOutInWorkflow.java
│       │       │   │                       │   └── Result.java
│       │       │   │                       ├── remoteendpoint/
│       │       │   │                       │   ├── CallRemoteEndpointActivity.java
│       │       │   │                       │   ├── Payload.java
│       │       │   │                       │   └── RemoteEndpointWorkflow.java
│       │       │   │                       ├── suspendresume/
│       │       │   │                       │   ├── PerformTaskActivity.java
│       │       │   │                       │   └── SuspendResumeWorkflow.java
│       │       │   │                       └── timer/
│       │       │   │                           ├── DurationTimerWorkflow.java
│       │       │   │                           ├── LogActivity.java
│       │       │   │                           ├── TimerLogService.java
│       │       │   │                           └── ZonedDateTimeTimerWorkflow.java
│       │       │   └── resources/
│       │       │       └── application.properties
│       │       └── test/
│       │           ├── java/
│       │           │   └── io/
│       │           │       └── dapr/
│       │           │           └── springboot4/
│       │           │               └── examples/
│       │           │                   └── wfp/
│       │           │                       ├── DaprTestContainersConfig.java
│       │           │                       ├── TestWorkflowPatternsApplication.java
│       │           │                       └── WorkflowPatternsAppIT.java
│       │           └── resources/
│       │               ├── application.properties
│       │               └── third-parties/
│       │                   └── remote-http-service.yaml
│       ├── pom.xml
│       └── spotbugs-exclude.xml
├── spring-boot-4-sdk-tests/
│   ├── pom.xml
│   └── src/
│       └── test/
│           └── java/
│               └── io/
│                   └── dapr/
│                       └── it/
│                           └── springboot4/
│                               └── testcontainers/
│                                   ├── ContainerConstants.java
│                                   ├── DaprClientConfiguration.java
│                                   ├── DaprClientFactory.java
│                                   ├── DaprContainerFactory.java
│                                   ├── DaprPreviewClientConfiguration.java
│                                   ├── DaprSidecarContainer.java
│                                   ├── Retry.java
│                                   ├── SubscriptionsRestController.java
│                                   ├── TestUtils.java
│                                   ├── actors/
│                                   │   ├── DaprActorsIT.java
│                                   │   ├── TestActor.java
│                                   │   ├── TestActorImpl.java
│                                   │   ├── TestActorsApplication.java
│                                   │   └── TestDaprActorsConfiguration.java
│                                   ├── conversations/
│                                   │   ├── DaprConversationAlpha2IT.java
│                                   │   ├── DaprConversationIT.java
│                                   │   └── TestConversationApplication.java
│                                   ├── core/
│                                   │   ├── DaprContainerIT.java
│                                   │   ├── DaprPlacementContainerIT.java
│                                   │   └── DaprSchedulerContainerIT.java
│                                   ├── crypto/
│                                   │   └── DaprPreviewClientCryptoIT.java
│                                   ├── jobs/
│                                   │   ├── DaprJobsIT.java
│                                   │   └── TestJobsApplication.java
│                                   ├── pubsub/
│                                   │   ├── http/
│                                   │   │   ├── DaprPubSubIT.java
│                                   │   │   ├── SubscriberController.java
│                                   │   │   └── TestPubSubApplication.java
│                                   │   └── outbox/
│                                   │       ├── DaprPubSubOutboxIT.java
│                                   │       ├── Product.java
│                                   │       ├── ProductWebhookController.java
│                                   │       └── TestPubsubOutboxApplication.java
│                                   ├── spring/
│                                   │   ├── DaprSpringBootContextInitializer.java
│                                   │   ├── DaprSpringBootExtension.java
│                                   │   └── DaprSpringBootTest.java
│                                   └── workflows/
│                                       ├── DaprWorkflowsIT.java
│                                       ├── FirstActivity.java
│                                       ├── KeyStore.java
│                                       ├── SecondActivity.java
│                                       ├── TaskExecutionIdActivity.java
│                                       ├── TestExecutionKeysWorkflow.java
│                                       ├── TestNamedActivitiesWorkflow.java
│                                       ├── TestWorkflow.java
│                                       ├── TestWorkflowPayload.java
│                                       ├── TestWorkflowsApplication.java
│                                       ├── TestWorkflowsConfiguration.java
│                                       └── multiapp/
│                                           ├── App2TransformActivity.java
│                                           ├── App2Worker.java
│                                           ├── App3FinalizeActivity.java
│                                           ├── App3Worker.java
│                                           ├── MultiAppWorker.java
│                                           ├── MultiAppWorkflow.java
│                                           └── WorkflowsMultiAppCallActivityIT.java
├── spring-boot-examples/
│   ├── README.md
│   ├── consumer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot/
│   │       │   │               └── examples/
│   │       │   │                   └── consumer/
│   │       │   │                       ├── ConsumerApplication.java
│   │       │   │                       ├── Order.java
│   │       │   │                       └── SubscriberRestController.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── springboot/
│   │           │               └── examples/
│   │           │                   └── consumer/
│   │           │                       ├── ConsumerAppIT.java
│   │           │                       ├── ConsumerAppTestConfiguration.java
│   │           │                       ├── DaprTestContainersConfig.java
│   │           │                       └── TestConsumerApplication.java
│   │           └── resources/
│   │               └── application.properties
│   ├── kubernetes/
│   │   ├── README.md
│   │   ├── consumer-app.yaml
│   │   ├── kind-with-registry.sh
│   │   ├── kvbinding.yaml
│   │   ├── kvstore.yaml
│   │   ├── producer-app.yaml
│   │   └── pubsub.yaml
│   ├── pom.xml
│   ├── producer-app/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   ├── java/
│   │       │   │   └── io/
│   │       │   │       └── dapr/
│   │       │   │           └── springboot/
│   │       │   │               └── examples/
│   │       │   │                   └── producer/
│   │       │   │                       ├── Customer.java
│   │       │   │                       ├── CustomerStore.java
│   │       │   │                       ├── CustomersRestController.java
│   │       │   │                       ├── Order.java
│   │       │   │                       ├── OrderDTO.java
│   │       │   │                       ├── OrderRepository.java
│   │       │   │                       ├── OrdersRestController.java
│   │       │   │                       ├── ProducerAppConfiguration.java
│   │       │   │                       ├── ProducerApplication.java
│   │       │   │                       └── workflow/
│   │       │   │                           ├── CustomerFollowupActivity.java
│   │       │   │                           ├── CustomerWorkflow.java
│   │       │   │                           └── RegisterCustomerActivity.java
│   │       │   └── resources/
│   │       │       └── application.properties
│   │       └── test/
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── dapr/
│   │           │           └── springboot/
│   │           │               └── examples/
│   │           │                   └── producer/
│   │           │                       ├── DaprTestContainersConfig.java
│   │           │                       ├── ProducerAppIT.java
│   │           │                       ├── TestProducerApplication.java
│   │           │                       └── TestSubscriberRestController.java
│   │           └── resources/
│   │               └── application.properties
│   ├── spotbugs-exclude.xml
│   └── workflows/
│       ├── multi-app/
│       │   ├── README.md
│       │   ├── orchestrator/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── orchestrator/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── CustomerWorkflow.java
│       │   │       │   │                       ├── CustomersRestController.java
│       │   │       │   │                       └── OrchestratorApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot/
│       │   │           │               └── examples/
│       │   │           │                   └── orchestrator/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── DockerImages.java
│       │   │           │                       ├── OrchestratorAppIT.java
│       │   │           │                       └── TestOrchestratorApplication.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   ├── pom.xml
│       │   ├── spotbugs-exclude.xml
│       │   ├── worker-one/
│       │   │   ├── pom.xml
│       │   │   └── src/
│       │   │       ├── main/
│       │   │       │   ├── java/
│       │   │       │   │   └── io/
│       │   │       │   │       └── dapr/
│       │   │       │   │           └── springboot/
│       │   │       │   │               └── examples/
│       │   │       │   │                   └── workerone/
│       │   │       │   │                       ├── Customer.java
│       │   │       │   │                       ├── RegisterCustomerActivity.java
│       │   │       │   │                       └── WorkerOneApplication.java
│       │   │       │   └── resources/
│       │   │       │       └── application.properties
│       │   │       └── test/
│       │   │           ├── java/
│       │   │           │   └── io/
│       │   │           │       └── dapr/
│       │   │           │           └── springboot/
│       │   │           │               └── examples/
│       │   │           │                   └── workerone/
│       │   │           │                       ├── DaprTestContainersConfig.java
│       │   │           │                       ├── TestWorkerOneApplication.java
│       │   │           │                       └── WorkerOneAppIT.java
│       │   │           └── resources/
│       │   │               └── application.properties
│       │   └── worker-two/
│       │       ├── pom.xml
│       │       └── src/
│       │           ├── main/
│       │           │   ├── java/
│       │           │   │   └── io/
│       │           │   │       └── dapr/
│       │           │   │           └── springboot/
│       │           │   │               └── examples/
│       │           │   │                   └── workertwo/
│       │           │   │                       ├── Customer.java
│       │           │   │                       ├── CustomerFollowupActivity.java
│       │           │   │                       └── WorkerTwoApplication.java
│       │           │   └── resources/
│       │           │       └── application.properties
│       │           └── test/
│       │               ├── java/
│       │               │   └── io/
│       │               │       └── dapr/
│       │               │           └── springboot/
│       │               │               └── examples/
│       │               │                   └── workertwo/
│       │               │                       ├── DaprTestContainersConfig.java
│       │               │                       ├── TestWorkerTwoApplication.java
│       │               │                       └── WorkerTwoAppIT.java
│       │               └── resources/
│       │                   └── application.properties
│       ├── patterns/
│       │   ├── README.md
│       │   ├── body.json
│       │   ├── pom.xml
│       │   └── src/
│       │       ├── main/
│       │       │   ├── java/
│       │       │   │   └── io/
│       │       │   │       └── dapr/
│       │       │   │           └── springboot/
│       │       │   │               └── examples/
│       │       │   │                   └── wfp/
│       │       │   │                       ├── WorkflowPatternsApplication.java
│       │       │   │                       ├── WorkflowPatternsConfiguration.java
│       │       │   │                       ├── WorkflowPatternsRestController.java
│       │       │   │                       ├── chain/
│       │       │   │                       │   ├── ChainWorkflow.java
│       │       │   │                       │   └── ToUpperCaseActivity.java
│       │       │   │                       ├── child/
│       │       │   │                       │   ├── ChildWorkflow.java
│       │       │   │                       │   ├── ParentWorkflow.java
│       │       │   │                       │   └── ReverseActivity.java
│       │       │   │                       ├── continueasnew/
│       │       │   │                       │   ├── CleanUpActivity.java
│       │       │   │                       │   ├── CleanUpLog.java
│       │       │   │                       │   └── ContinueAsNewWorkflow.java
│       │       │   │                       ├── externalevent/
│       │       │   │                       │   ├── ApproveActivity.java
│       │       │   │                       │   ├── Decision.java
│       │       │   │                       │   ├── DenyActivity.java
│       │       │   │                       │   └── ExternalEventWorkflow.java
│       │       │   │                       ├── fanoutin/
│       │       │   │                       │   ├── CountWordsActivity.java
│       │       │   │                       │   ├── FanOutInWorkflow.java
│       │       │   │                       │   └── Result.java
│       │       │   │                       ├── remoteendpoint/
│       │       │   │                       │   ├── CallRemoteEndpointActivity.java
│       │       │   │                       │   ├── Payload.java
│       │       │   │                       │   └── RemoteEndpointWorkflow.java
│       │       │   │                       ├── suspendresume/
│       │       │   │                       │   ├── PerformTaskActivity.java
│       │       │   │                       │   └── SuspendResumeWorkflow.java
│       │       │   │                       └── timer/
│       │       │   │                           ├── DurationTimerWorkflow.java
│       │       │   │                           ├── LogActivity.java
│       │       │   │                           ├── TimerLogService.java
│       │       │   │                           └── ZonedDateTimeTimerWorkflow.java
│       │       │   └── resources/
│       │       │       └── application.properties
│       │       └── test/
│       │           ├── java/
│       │           │   └── io/
│       │           │       └── dapr/
│       │           │           └── springboot/
│       │           │               └── examples/
│       │           │                   └── wfp/
│       │           │                       ├── DaprTestContainersConfig.java
│       │           │                       ├── TestWorkflowPatternsApplication.java
│       │           │                       └── WorkflowPatternsAppIT.java
│       │           └── resources/
│       │               ├── application.properties
│       │               └── third-parties/
│       │                   └── remote-http-service.yaml
│       ├── pom.xml
│       ├── spotbugs-exclude.xml
│       └── versioning/
│           ├── README.md
│           ├── full-version-worker-one/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workerone/
│           │       │   │                       ├── FullVersionWorkerOneApplication.java
│           │       │   │                       ├── RegisterV1Components.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workerone/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── full-version-worker-two/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workertwo/
│           │       │   │                       ├── FullVersionWorkerTwoApplication.java
│           │       │   │                       ├── RegisterV2Components.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workertwo/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerTwoApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── patch-version-worker-one/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workerone/
│           │       │   │                       ├── PatchVersionWorkerOneApplication.java
│           │       │   │                       ├── RegisterComponents.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workerone/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── patch-version-worker-two/
│           │   ├── pom.xml
│           │   └── src/
│           │       ├── main/
│           │       │   ├── java/
│           │       │   │   └── io/
│           │       │   │       └── dapr/
│           │       │   │           └── springboot/
│           │       │   │               └── examples/
│           │       │   │                   └── workertwo/
│           │       │   │                       ├── PatchVersionWorkerTwoApplication.java
│           │       │   │                       ├── RegisterPatchedComponents.java
│           │       │   │                       └── WorkflowController.java
│           │       │   └── resources/
│           │       │       └── application.properties
│           │       └── test/
│           │           ├── java/
│           │           │   └── io/
│           │           │       └── dapr/
│           │           │           └── springboot/
│           │           │               └── examples/
│           │           │                   └── workertwo/
│           │           │                       ├── DaprTestContainersConfig.java
│           │           │                       └── TestWorkerOneApplication.java
│           │           └── resources/
│           │               └── application.properties
│           ├── pom.xml
│           ├── spotbugs-exclude.xml
│           └── version-orchestrator/
│               ├── pom.xml
│               └── src/
│                   ├── main/
│                   │   ├── java/
│                   │   │   └── io/
│                   │   │       └── dapr/
│                   │   │           └── springboot/
│                   │   │               └── examples/
│                   │   │                   └── orchestrator/
│                   │   │                       ├── FullVersionRestController.java
│                   │   │                       ├── PatchVersionRestController.java
│                   │   │                       └── VersionOrchestratorApplication.java
│                   │   └── resources/
│                   │       └── application.properties
│                   └── test/
│                       ├── java/
│                       │   └── io/
│                       │       └── dapr/
│                       │           └── springboot/
│                       │               └── examples/
│                       │                   └── orchestrator/
│                       │                       ├── DaprTestContainersConfig.java
│                       │                       ├── DockerImages.java
│                       │                       └── TestOrchestratorApplication.java
│                       └── resources/
│                           └── application.properties
└── testcontainers-dapr/
    ├── pom.xml
    └── src/
        ├── main/
        │   └── java/
        │       └── io/
        │           └── dapr/
        │               └── testcontainers/
        │                   ├── AppHttpPipeline.java
        │                   ├── Component.java
        │                   ├── Configuration.java
        │                   ├── ConfigurationSettings.java
        │                   ├── DaprContainer.java
        │                   ├── DaprContainerConstants.java
        │                   ├── DaprLogLevel.java
        │                   ├── DaprPlacementContainer.java
        │                   ├── DaprProtocol.java
        │                   ├── DaprSchedulerContainer.java
        │                   ├── HttpEndpoint.java
        │                   ├── ListEntry.java
        │                   ├── MetadataEntry.java
        │                   ├── OtelTracingConfigurationSettings.java
        │                   ├── Subscription.java
        │                   ├── TracingConfigurationSettings.java
        │                   ├── WorkflowDashboardContainer.java
        │                   ├── ZipkinTracingConfigurationSettings.java
        │                   ├── converter/
        │                   │   ├── ComponentYamlConverter.java
        │                   │   ├── ConfigurationYamlConverter.java
        │                   │   ├── HttpEndpointYamlConverter.java
        │                   │   ├── SubscriptionYamlConverter.java
        │                   │   ├── YamlConverter.java
        │                   │   └── YamlMapperFactory.java
        │                   └── wait/
        │                       └── strategy/
        │                           ├── AbstractDaprWaitStrategy.java
        │                           ├── ActorWaitStrategy.java
        │                           ├── DaprWait.java
        │                           ├── SubscriptionWaitStrategy.java
        │                           └── metadata/
        │                               ├── Actor.java
        │                               ├── Component.java
        │                               ├── Metadata.java
        │                               └── Subscription.java
        └── test/
            ├── java/
            │   └── io/
            │       └── dapr/
            │           └── testcontainers/
            │               ├── DaprComponentTest.java
            │               ├── DaprContainerTest.java
            │               ├── DaprWorkflowDashboardTest.java
            │               ├── converter/
            │               │   ├── ComponentYamlConverterTest.java
            │               │   ├── ConfigurationYamlConverterTest.java
            │               │   ├── HttpEndpointYamlConverterTest.java
            │               │   └── SubscriptionYamlConverterTest.java
            │               └── wait/
            │                   └── strategy/
            │                       ├── ActorWaitStrategyTest.java
            │                       ├── DaprWaitTest.java
            │                       ├── SubscriptionWaitStrategyTest.java
            │                       └── metadata/
            │                           └── MetadataTest.java
            └── resources/
                └── dapr-resources/
                    └── statestore.yaml
Download .txt
Showing preview only (581K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6717 symbols across 945 files)

FILE: .github/scripts/automerge.py
  function fetch_pulls (line 22) | def fetch_pulls(mergeable_state):
  function is_approved (line 26) | def is_approved(pr):

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/AbstractDaprKeyValueAdapter.java
  class AbstractDaprKeyValueAdapter (line 28) | public abstract class AbstractDaprKeyValueAdapter implements KeyValueAda...
    method AbstractDaprKeyValueAdapter (line 35) | protected AbstractDaprKeyValueAdapter(DaprClient daprClient, String st...
    method destroy (line 43) | @Override
    method clear (line 48) | @Override
    method put (line 53) | @Override
    method contains (line 68) | @Override
    method get (line 73) | @Override
    method get (line 83) | @Override
    method delete (line 95) | @Override
    method delete (line 110) | @Override
    method getAllOf (line 125) | @Override
    method entries (line 130) | @Override
    method resolveKey (line 135) | private String resolveKey(String keyspace, Object id) {
    method resolveValue (line 139) | private <T> T resolveValue(Mono<State<T>> state) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueAdapterResolver.java
  class DaprKeyValueAdapterResolver (line 25) | public class DaprKeyValueAdapterResolver implements KeyValueAdapterResol...
    method DaprKeyValueAdapterResolver (line 41) | public DaprKeyValueAdapterResolver(DaprClient daprClient, ObjectMapper...
    method resolve (line 49) | @Override
    method shouldUseMySQL (line 74) | @SuppressWarnings("AbbreviationAsWordInName")
    method shouldUsePostgreSQL (line 82) | @SuppressWarnings("AbbreviationAsWordInName")
    method matchBy (line 90) | private boolean matchBy(String name, Set<String> markers, ComponentMet...
    method getTypeAndVersion (line 94) | private String getTypeAndVersion(ComponentMetadata component) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueTemplate.java
  class DaprKeyValueTemplate (line 45) | public class DaprKeyValueTemplate implements KeyValueOperations, Applica...
    method DaprKeyValueTemplate (line 67) | public DaprKeyValueTemplate(KeyValueAdapterResolver resolver) {
    method DaprKeyValueTemplate (line 77) | @SuppressWarnings("LineLength")
    method DaprKeyValueTemplate (line 90) | @SuppressWarnings("LineLength")
    method typeCheck (line 103) | private static boolean typeCheck(Class<?> requiredType, @Nullable Obje...
    method setExceptionTranslator (line 107) | public void setExceptionTranslator(PersistenceExceptionTranslator exce...
    method setEventTypesToPublish (line 117) | @SuppressWarnings("rawtypes")
    method setApplicationEventPublisher (line 127) | @Override
    method insert (line 132) | @Override
    method insert (line 145) | @Override
    method update (line 170) | @Override
    method update (line 182) | @Override
    method findById (line 199) | @Override
    method delete (line 223) | @Override
    method delete (line 240) | @SuppressWarnings("unchecked")
    method delete (line 256) | @Override
    method execute (line 272) | @Nullable
    method executeRequired (line 284) | protected <T> T executeRequired(KeyValueCallback<T> action) {
    method find (line 294) | @Override
    method findAll (line 311) | @Override
    method findAll (line 329) | @SuppressWarnings("rawtypes")
    method findInRange (line 335) | @SuppressWarnings("rawtypes")
    method findInRange (line 341) | @SuppressWarnings("rawtypes")
    method count (line 347) | @Override
    method count (line 353) | @Override
    method exists (line 358) | @Override
    method getMappingContext (line 363) | @Override
    method getKeyValueAdapter (line 368) | @Override
    method destroy (line 373) | @Override
    method getKeyValuePersistentEntity (line 378) | private KeyValuePersistentEntity<?, ?> getKeyValuePersistentEntity(Obj...
    method resolveKeySpace (line 382) | private String resolveKeySpace(Class<?> type) {
    method resolveExceptionIfPossible (line 386) | private RuntimeException resolveExceptionIfPossible(RuntimeException e) {
    method potentiallyPublishEvent (line 392) | @SuppressWarnings("rawtypes")

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DefaultIdentifierGenerator.java
  type DefaultIdentifierGenerator (line 32) | enum DefaultIdentifierGenerator implements IdentifierGenerator {
    method generateIdentifierOfType (line 38) | @Override
    method getSecureRandom (line 59) | private SecureRandom getSecureRandom() {
    class OsTools (line 85) | private static class OsTools {
      method secureRandomAlgorithmNames (line 93) | static List<String> secureRandomAlgorithmNames() {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/GeneratingIdAccessor.java
  class GeneratingIdAccessor (line 28) | class GeneratingIdAccessor implements IdentifierAccessor {
    method GeneratingIdAccessor (line 42) | GeneratingIdAccessor(PersistentPropertyAccessor<?> accessor, Persisten...
    method getIdentifier (line 54) | @Override
    method getOrGenerateIdentifier (line 59) | Object getOrGenerateIdentifier() {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/KeyValueAdapterResolver.java
  type KeyValueAdapterResolver (line 18) | public interface KeyValueAdapterResolver {
    method resolve (line 19) | KeyValueAdapter resolve();

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/MySQLDaprKeyValueAdapter.java
  class MySQLDaprKeyValueAdapter (line 36) | @SuppressWarnings("AbbreviationAsWordInName")
    method MySQLDaprKeyValueAdapter (line 66) | public MySQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapper ma...
    method getAllOf (line 79) | @Override
    method deleteAllOf (line 90) | @Override
    method find (line 99) | @Override
    method count (line 117) | @Override
    method count (line 127) | @Override
    method getKeyspaceFilter (line 144) | private String getKeyspaceFilter(String keyspace) {
    method createSql (line 148) | private String createSql(String sqlPattern, String keyspace) {
    method createSql (line 154) | private String createSql(String sqlPattern, String keyspace, Object cr...
    method execUsingBinding (line 165) | private void execUsingBinding(String sql) {
    method queryUsingBinding (line 171) | private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    method convertValues (line 177) | private <T> List<T> convertValues(List<JsonNode> values, Class<T> type) {
    method convertValue (line 187) | private <T> T convertValue(JsonNode value, Class<T> type) {
    method extractCount (line 206) | private long extractCount(List<JsonNode> values) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/PostgreSQLDaprKeyValueAdapter.java
  class PostgreSQLDaprKeyValueAdapter (line 35) | @SuppressWarnings("AbbreviationAsWordInName")
    method PostgreSQLDaprKeyValueAdapter (line 64) | public PostgreSQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapp...
    method getAllOf (line 77) | @Override
    method deleteAllOf (line 88) | @Override
    method find (line 97) | @Override
    method count (line 115) | @Override
    method count (line 125) | @Override
    method getKeyspaceFilter (line 142) | private String getKeyspaceFilter(String keyspace) {
    method createSql (line 146) | private String createSql(String sqlPattern, String keyspace) {
    method createSql (line 152) | private String createSql(String sqlPattern, String keyspace, Object cr...
    method execUsingBinding (line 175) | private void execUsingBinding(String sql) {
    method queryUsingBinding (line 181) | private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    method convertValues (line 187) | private <T> Iterable<T> convertValues(List<List<Object>> values, Class...
    method convertValue (line 198) | private <T> T convertValue(Object value, Class<T> type) {
    method extractCount (line 206) | private long extractCount(List<List<Long>> values) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoriesRegistrar.java
  class DaprRepositoriesRegistrar (line 24) | public class DaprRepositoriesRegistrar extends RepositoryBeanDefinitionR...
    method getAnnotation (line 26) | @Override
    method getExtension (line 31) | @Override

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoryConfigurationExtension.java
  class DaprRepositoryConfigurationExtension (line 22) | @SuppressWarnings("unchecked")
    method getModuleName (line 25) | @Override
    method getModulePrefix (line 30) | @Override
    method getDefaultKeyValueTemplateRef (line 35) | @Override

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicate.java
  class DaprPredicate (line 24) | public class DaprPredicate implements Predicate<Object> {
    method DaprPredicate (line 30) | public DaprPredicate(PropertyPath path, Object expected) {
    method DaprPredicate (line 41) | public DaprPredicate(PropertyPath path, Object value, Function<Object,...
    method getPath (line 47) | public PropertyPath getPath() {
    method getValue (line 51) | public Object getValue() {
    method test (line 55) | @Override
    method getValueByPath (line 61) | private Object getValueByPath(Object root, PropertyPath path) {
    method wrap (line 75) | private BeanWrapper wrap(Object o) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateBuilder.java
  class DaprPredicateBuilder (line 27) | class DaprPredicateBuilder {
    method DaprPredicateBuilder (line 31) | private DaprPredicateBuilder(Part part) {
    method propertyValueOf (line 35) | static DaprPredicateBuilder propertyValueOf(Part part) {
    method isTrue (line 39) | Predicate<Object> isTrue() {
    method isFalse (line 43) | public Predicate<Object> isFalse() {
    method isEqualTo (line 47) | public Predicate<Object> isEqualTo(Object value) {
    method isNull (line 61) | public Predicate<Object> isNull() {
    method isNotNull (line 65) | public Predicate<Object> isNotNull() {
    method isLessThan (line 69) | public Predicate<Object> isLessThan(Object value) {
    method isLessThanEqual (line 73) | public Predicate<Object> isLessThanEqual(Object value) {
    method isGreaterThan (line 77) | public Predicate<Object> isGreaterThan(Object value) {
    method isGreaterThanEqual (line 81) | public Predicate<Object> isGreaterThanEqual(Object value) {
    method matches (line 85) | public Predicate<Object> matches(Object value) {
    method in (line 100) | public Predicate<Object> in(Object value) {
    method contains (line 120) | public Predicate<Object> contains(Object value) {
    method startsWith (line 154) | public Predicate<Object> startsWith(Object value) {
    method endsWith (line 169) | public Predicate<Object> endsWith(Object value) {

FILE: dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateQueryCreator.java
  class DaprPredicateQueryCreator (line 34) | public class DaprPredicateQueryCreator extends AbstractQueryCreator<KeyV...
    method DaprPredicateQueryCreator (line 36) | public DaprPredicateQueryCreator(PartTree tree, ParameterAccessor para...
    method create (line 40) | @Override
    method and (line 84) | @Override
    method or (line 89) | @Override
    method complete (line 94) | @Override

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientSB4AutoConfiguration.java
  class DaprClientSB4AutoConfiguration (line 40) | @AutoConfiguration
    method daprConnectionDetails (line 45) | @Bean
    method daprClientBuilder (line 51) | @Bean
    method daprClient (line 95) | @Bean
    method daprWorkflowClient (line 107) | @Bean
    method daprActorClient (line 119) | @Bean
    method daprActorRuntime (line 126) | @Bean
    method daprWorkflowRuntimeBuilder (line 133) | @Bean
    method createDaprClientBuilder (line 144) | protected DaprClientBuilder createDaprClientBuilder() {
    method createPropertiesFromConnectionDetails (line 154) | protected Properties createPropertiesFromConnectionDetails(DaprConnect...

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfiguration.java
  class DaprJackson3SB4AutoConfiguration (line 31) | @AutoConfiguration(after = JacksonAutoConfiguration.class, before = Dapr...
    method daprObjectSerializer (line 35) | @Bean

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/Jackson3ObjectSerializer.java
  class Jackson3ObjectSerializer (line 26) | public class Jackson3ObjectSerializer implements DaprObjectSerializer {
    method Jackson3ObjectSerializer (line 30) | public Jackson3ObjectSerializer(JsonMapper jsonMapper) {
    method serialize (line 34) | @Override
    method deserialize (line 55) | @Override
    method getContentType (line 86) | @Override
    method deserializePrimitives (line 91) | @SuppressWarnings("unchecked")

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientAutoConfigurationTest.java
  class DaprClientAutoConfigurationTest (line 38) | @ExtendWith(MockitoExtension.class)
    method daprClientBuilder (line 55) | @Test
    method daprClient (line 60) | @Test
    method setUp (line 65) | @BeforeEach
    method shouldOverrideHttpEndpointIfExists (line 70) | @Test
    method shouldOverrideGrpcEndpointIfExists (line 82) | @Test
    method shouldOverrideHttpPortIfExists (line 94) | @Test
    method shouldOverrideGrpcPortIfExists (line 106) | @Test
    method shouldOverrideApiTokenIfExists (line 118) | @Test
    method shouldOverrideHttpEndpointInPropertiesIfExists (line 130) | @Test
    method shouldOverrideGrpcEndpointPropertiesIfExists (line 142) | @Test
    method shouldOverrideHttpPortPropertiesIfExists (line 154) | @Test
    method shouldOverrideGrpcPortPropertiesIfExists (line 166) | @Test
    method shouldOverrideApiTokenPropertiesIfExists (line 178) | @Test
    class TestDaprClientAutoConfiguration (line 190) | private static class TestDaprClientAutoConfiguration extends DaprClien...
      method TestDaprClientAutoConfiguration (line 194) | public TestDaprClientAutoConfiguration(DaprClientBuilder daprClientB...
      method createDaprClientBuilder (line 198) | @Override

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfigurationTest.java
  class DaprJackson3SB4AutoConfigurationTest (line 28) | class DaprJackson3SB4AutoConfigurationTest {
    method shouldCreateSerializerBean (line 35) | @Test
    method shouldReturnJsonContentType (line 45) | @Test
    method shouldBackOffWhenCustomSerializerProvided (line 54) | @Test
    method shouldUseSpringJsonMapper (line 66) | @Test
    class CustomSerializerConfiguration (line 75) | @Configuration(proxyBeanMethods = false)
      method customSerializer (line 78) | @Bean

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprWorkflowsRegistrationTests.java
  class DaprWorkflowsRegistrationTests (line 13) | @SpringBootTest(classes = {WorkflowTestApplication.class, DaprClientSB4A...
    method testWorkflowInjection (line 28) | @Test

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/Jackson3ObjectSerializerTest.java
  class Jackson3ObjectSerializerTest (line 29) | class Jackson3ObjectSerializerTest {
    method setUp (line 33) | @BeforeEach
    method getContentType (line 38) | @Test
    method serializeNull (line 44) | @Test
    method serializeVoid (line 50) | @Test
    method serializeByteArray (line 57) | @Test
    method serializeString (line 64) | @Test
    method serializeObject (line 71) | @Test
    method deserializeVoid (line 83) | @Test
    method deserializeNullData (line 89) | @Test
    method deserializeByteArray (line 95) | @Test
    method deserializeEmptyData (line 103) | @Test
    method deserializeString (line 109) | @Test
    method deserializeObject (line 117) | @Test
    method deserializeGenericType (line 126) | @Test
    method deserializeIntPrimitiveNull (line 134) | @Test
    method deserializeIntPrimitiveEmpty (line 141) | @Test
    method deserializeBooleanPrimitiveNull (line 148) | @Test
    method deserializeIntPrimitiveWithData (line 155) | @Test
    method roundTrip (line 163) | @Test
    method deserializeMap (line 173) | @Test
    method deserializeBooleanPrimitiveEmpty (line 183) | @Test
    method deserializeBytePrimitiveNull (line 190) | @Test
    method deserializeBytePrimitiveEmpty (line 197) | @Test
    method deserializeShortPrimitiveNull (line 204) | @Test
    method deserializeShortPrimitiveEmpty (line 211) | @Test
    method deserializeLongPrimitiveNull (line 218) | @Test
    method deserializeLongPrimitiveEmpty (line 225) | @Test
    method deserializeFloatPrimitiveNull (line 232) | @Test
    method deserializeFloatPrimitiveEmpty (line 239) | @Test
    method deserializeDoublePrimitiveNull (line 246) | @Test
    method deserializeDoublePrimitiveEmpty (line 253) | @Test
    method deserializeCharPrimitiveNull (line 260) | @Test
    method deserializeCharPrimitiveEmpty (line 267) | @Test
    method deserializeBooleanPrimitiveWithData (line 276) | @Test
    method deserializeLongPrimitiveWithData (line 284) | @Test
    method deserializeFloatPrimitiveWithData (line 292) | @Test
    method deserializeDoublePrimitiveWithData (line 300) | @Test
    method deserializeShortPrimitiveWithData (line 308) | @Test
    method deserializeVoidPrimitiveNull (line 318) | @Test
    method deserializeVoidPrimitiveEmpty (line 324) | @Test
    method serializeInvalidObjectThrowsIOException (line 332) | @Test
    method deserializeInvalidJsonThrowsIOException (line 345) | @Test
    method deserializeInvalidJsonForPrimitiveThrowsIOException (line 353) | @Test
    method deserializeNullDataForByteArray (line 363) | @Test
    method serializeInteger (line 370) | @Test
    method serializeBoolean (line 377) | @Test
    method serializeList (line 384) | @Test
    method roundTripList (line 391) | @Test
    class TestData (line 400) | public static class TestData {
      method TestData (line 404) | public TestData() {
      method TestData (line 407) | public TestData(String name, int value) {
      method getName (line 412) | public String getName() {
      method setName (line 416) | public void setName(String name) {
      method getValue (line 420) | public int getValue() {
      method setValue (line 424) | public void setValue(int value) {

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/WorkflowTestApplication.java
  class WorkflowTestApplication (line 10) | @SpringBootApplication
    method main (line 13) | public static void main(String[] args) {
    class Config (line 17) | @Configuration
      method restTemplate (line 19) | @Bean

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/workflows/TestActivity.java
  class TestActivity (line 8) | public class TestActivity implements WorkflowActivity {
    method run (line 13) | @Override
    method getRestTemplate (line 18) | public RestTemplate getRestTemplate() {

FILE: dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/workflows/TestWorkflow.java
  class TestWorkflow (line 8) | public class TestWorkflow implements Workflow {
    method create (line 13) | @Override
    method getRestTemplate (line 20) | public RestTemplate getRestTemplate() {

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/main/java/io/dapr/spring/boot/autoconfigure/client/DaprClientAutoConfiguration.java
  class DaprClientAutoConfiguration (line 39) | @AutoConfiguration
    method daprConnectionDetails (line 44) | @Bean
    method daprClientBuilder (line 50) | @Bean
    method daprClient (line 86) | @Bean
    method daprWorkflowClient (line 98) | @Bean
    method daprActorClient (line 110) | @Bean
    method daprActorRuntime (line 117) | @Bean
    method daprWorkflowRuntimeBuilder (line 124) | @Bean
    method createDaprClientBuilder (line 135) | protected DaprClientBuilder createDaprClientBuilder() {
    method createPropertiesFromConnectionDetails (line 145) | protected Properties createPropertiesFromConnectionDetails(DaprConnect...

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprClientAutoConfigurationTest.java
  class DaprClientAutoConfigurationTest (line 36) | @ExtendWith(MockitoExtension.class)
    method daprClientBuilder (line 50) | @Test
    method daprClient (line 55) | @Test
    method setUp (line 60) | @BeforeEach
    method shouldOverrideHttpEndpointIfExists (line 65) | @Test
    method shouldOverrideGrpcEndpointIfExists (line 77) | @Test
    method shouldOverrideHttpPortIfExists (line 89) | @Test
    method shouldOverrideGrpcPortIfExists (line 101) | @Test
    method shouldOverrideApiTokenIfExists (line 113) | @Test
    method shouldOverrideHttpEndpointInPropertiesIfExists (line 125) | @Test
    method shouldOverrideGrpcEndpointPropertiesIfExists (line 137) | @Test
    method shouldOverrideHttpPortPropertiesIfExists (line 149) | @Test
    method shouldOverrideGrpcPortPropertiesIfExists (line 161) | @Test
    method shouldOverrideApiTokenPropertiesIfExists (line 173) | @Test
    class TestDaprClientAutoConfiguration (line 185) | private static class TestDaprClientAutoConfiguration extends DaprClien...
      method TestDaprClientAutoConfiguration (line 189) | public TestDaprClientAutoConfiguration(DaprClientBuilder daprClientB...
      method createDaprClientBuilder (line 193) | @Override

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprClientObservationAutoConfigurationTest.java
  class DaprClientObservationAutoConfigurationTest (line 43) | class DaprClientObservationAutoConfigurationTest {
    method daprClientIsPlainWhenNoRegistry (line 52) | @Test
    method daprClientIsObservationWrappedWhenRegistryPresent (line 68) | @Test
    method daprWorkflowClientIsObservationWrappedWhenRegistryPresent (line 81) | @Test
    method daprClientInjectableByBaseType (line 98) | @Test
    method daprWorkflowClientInjectableByBaseType (line 112) | @Test
    method noopRegistryResultsInPlainClient (line 126) | @Test
    method userProvidedDaprClientIsNotReplaced (line 139) | @Test
    method mockBuilderReturningMockClient (line 156) | private static DaprClientBuilder mockBuilderReturningMockClient() {

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprWorkflowsRegistrationTests.java
  class DaprWorkflowsRegistrationTests (line 13) | @SpringBootTest(classes = {WorkflowTestApplication.class, DaprClientAuto...
    method testWorkflowInjection (line 28) | @Test

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/WorkflowTestApplication.java
  class WorkflowTestApplication (line 10) | @SpringBootApplication
    method main (line 13) | public static void main(String[] args) {
    class Config (line 17) | @Configuration
      method restTemplate (line 19) | @Bean

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java
  class TestActivity (line 8) | public class TestActivity implements WorkflowActivity {
    method run (line 13) | @Override
    method getRestTemplate (line 18) | public RestTemplate getRestTemplate() {

FILE: dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java
  class TestWorkflow (line 8) | public class TestWorkflow implements Workflow {
    method create (line 13) | @Override
    method getRestTemplate (line 20) | public RestTemplate getRestTemplate() {

FILE: dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/ObservationDaprClient.java
  class ObservationDaprClient (line 68) | public class ObservationDaprClient implements DaprClient {
    method ObservationDaprClient (line 79) | public ObservationDaprClient(DaprClient delegate, ObservationRegistry ...
    method observe (line 89) | private <T> Mono<T> observe(Observation obs, Supplier<Mono<T>> monoSup...
    method observeFlux (line 107) | private <T> Flux<T> observeFlux(Observation obs, Supplier<Flux<T>> flu...
    method enrichWithSpanContext (line 127) | private static Context enrichWithSpanContext(Context ctx, SpanContext ...
    method safe (line 139) | private static String safe(String value) {
    method observation (line 143) | private Observation observation(String name) {
    method waitForSidecar (line 151) | @Override
    method shutdown (line 157) | @Override
    method close (line 163) | @Override
    method publishEvent (line 172) | @Override
    method publishEvent (line 181) | @Override
    method publishEvent (line 191) | @Override
    method publishEvents (line 200) | @Override
    method publishEvents (line 209) | @Override
    method publishEvents (line 219) | @Override
    method publishEvents (line 230) | @Override
    method publishEvents (line 242) | @Override
    method invokeMethod (line 259) | @Override
    method invokeMethod (line 267) | @Override
    method invokeMethod (line 275) | @Override
    method invokeMethod (line 282) | @Override
    method invokeMethod (line 289) | @Override
    method invokeMethod (line 296) | @Override
    method invokeMethod (line 303) | @Override
    method invokeMethod (line 310) | @Override
    method invokeMethod (line 317) | @Override
    method invokeMethod (line 324) | @Override
    method invokeMethod (line 331) | @Override
    method invokeBinding (line 341) | @Override
    method invokeBinding (line 350) | @Override
    method invokeBinding (line 360) | @Override
    method invokeBinding (line 370) | @Override
    method invokeBinding (line 380) | @Override
    method invokeBinding (line 390) | @Override
    method invokeBinding (line 400) | @Override
    method invokeBinding (line 409) | @Override
    method getState (line 422) | @Override
    method getState (line 431) | @Override
    method getState (line 440) | @Override
    method getState (line 449) | @Override
    method getState (line 458) | @Override
    method getState (line 468) | @Override
    method getState (line 478) | @Override
    method getBulkState (line 487) | @Override
    method getBulkState (line 496) | @Override
    method getBulkState (line 505) | @Override
    method executeStateTransaction (line 513) | @Override
    method executeStateTransaction (line 522) | @Override
    method saveBulkState (line 530) | @Override
    method saveBulkState (line 538) | @Override
    method saveState (line 546) | @Override
    method saveState (line 555) | @Override
    method saveState (line 565) | @Override
    method deleteState (line 575) | @Override
    method deleteState (line 584) | @Override
    method deleteState (line 594) | @Override
    method getSecret (line 607) | @Override
    method getSecret (line 617) | @Override
    method getSecret (line 626) | @Override
    method getBulkSecret (line 635) | @Override
    method getBulkSecret (line 643) | @Override
    method getBulkSecret (line 652) | @Override
    method getConfiguration (line 664) | @Override
    method getConfiguration (line 673) | @Override
    method getConfiguration (line 683) | @Override
    method getConfiguration (line 691) | @Override
    method getConfiguration (line 700) | @Override
    method subscribeConfiguration (line 708) | @Override
    method subscribeConfiguration (line 717) | @Override
    method subscribeConfiguration (line 727) | @Override
    method unsubscribeConfiguration (line 736) | @Override
    method unsubscribeConfiguration (line 745) | @Override
    method newGrpcStub (line 758) | @Override
    method getMetadata (line 767) | @Override
    method scheduleJob (line 776) | @Override
    method getJob (line 784) | @Override
    method deleteJob (line 792) | @Override

FILE: dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/ObservationDaprWorkflowClient.java
  class ObservationDaprWorkflowClient (line 59) | public class ObservationDaprWorkflowClient extends DaprWorkflowClient {
    method ObservationDaprWorkflowClient (line 72) | public ObservationDaprWorkflowClient(Properties properties,
    method observation (line 83) | private Observation observation(String name) {
    method scheduleNewWorkflow (line 93) | @Override
    method scheduleNewWorkflow (line 110) | @Override
    method scheduleNewWorkflow (line 127) | @Override
    method scheduleNewWorkflow (line 147) | @Override
    method suspendWorkflow (line 172) | @Override
    method resumeWorkflow (line 189) | @Override
    method terminateWorkflow (line 206) | @Override
    method getWorkflowState (line 227) | @Override
    method waitForWorkflowStart (line 249) | @Override
    method waitForWorkflowCompletion (line 271) | @Override
    method raiseEvent (line 298) | @Override
    method purgeWorkflow (line 320) | @Override
    class OtelTracingClientInterceptor (line 353) | private static final class OtelTracingClientInterceptor implements Cli...
      method interceptCall (line 355) | @Override

FILE: dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/TraceContextFormat.java
  class TraceContextFormat (line 27) | final class TraceContextFormat {
    method TraceContextFormat (line 29) | private TraceContextFormat() {
    method formatW3cTraceparent (line 35) | static String formatW3cTraceparent(SpanContext spanCtx) {
    method formatTraceState (line 44) | static String formatTraceState(SpanContext spanCtx) {

FILE: dapr-spring/dapr-spring-boot-observation/src/test/java/io/dapr/spring/observation/client/ObservationDaprClientTest.java
  class ObservationDaprClientTest (line 56) | @ExtendWith(MockitoExtension.class)
    method setUp (line 65) | @BeforeEach
    method isAssignableToDaprClient (line 75) | @Test
    method publishEventCreatesSpan (line 85) | @Test
    method publishEventRequestCreatesSpan (line 99) | @Test
    method publishEventRecordsError (line 111) | @Test
    method invokeBindingCreatesSpan (line 130) | @Test
    method invokeBindingRequestCreatesSpan (line 144) | @Test
    method getStateCreatesSpan (line 160) | @Test
    method saveStateCreatesSpan (line 174) | @Test
    method deleteStateCreatesSpan (line 188) | @Test
    method getBulkStateCreatesSpan (line 202) | @Test
    method executeStateTransactionCreatesSpan (line 214) | @Test
    method getSecretCreatesSpan (line 229) | @Test
    method getBulkSecretCreatesSpan (line 243) | @Test
    method getConfigurationCreatesSpan (line 258) | @Test
    method subscribeConfigurationCreatesSpan (line 271) | @Test
    method unsubscribeConfigurationCreatesSpan (line 282) | @Test
    method getMetadataCreatesSpan (line 297) | @Test
    method waitForSidecarCreatesSpan (line 308) | @Test
    method shutdownCreatesSpan (line 319) | @Test
    method scheduleJobCreatesSpan (line 334) | @Test
    method observationDoesNotStartWithoutSubscription (line 353) | @Test
    method deprecatedInvokeMethodDoesNotCreateSpan (line 367) | @Test

FILE: dapr-spring/dapr-spring-boot-observation/src/test/java/io/dapr/spring/observation/client/ObservationDaprWorkflowClientTest.java
  class ObservationDaprWorkflowClientTest (line 42) | class ObservationDaprWorkflowClientTest {
    method setUp (line 47) | @BeforeEach
    method isAssignableToDaprWorkflowClient (line 58) | @Test
    method scheduleNewWorkflowByNameCreatesSpan (line 68) | @Test
    method scheduleNewWorkflowByClassDelegatesToStringOverload (line 82) | @Test
    method scheduleNewWorkflowWithInstanceIdCreatesSpan (line 97) | @Test
    method suspendWorkflowCreatesSpan (line 114) | @Test
    method resumeWorkflowCreatesSpan (line 127) | @Test
    method terminateWorkflowCreatesSpan (line 140) | @Test
    method getWorkflowStateCreatesSpan (line 157) | @Test
    method raiseEventCreatesSpan (line 174) | @Test
    method purgeWorkflowCreatesSpan (line 192) | @Test
    method deprecatedGetInstanceStateDoesNotCreateSpan (line 209) | @Test
    class DummyWorkflow (line 225) | static class DummyWorkflow implements io.dapr.workflows.Workflow {
      method create (line 226) | @Override

FILE: dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/ClientPropertiesDaprConnectionDetails.java
  class ClientPropertiesDaprConnectionDetails (line 16) | public class ClientPropertiesDaprConnectionDetails implements DaprConnec...
    method ClientPropertiesDaprConnectionDetails (line 20) | public ClientPropertiesDaprConnectionDetails(DaprClientProperties dapr...
    method getHttpEndpoint (line 24) | @Override
    method getGrpcEndpoint (line 29) | @Override
    method getHttpPort (line 34) | @Override
    method getGrpcPort (line 39) | @Override
    method getApiToken (line 44) | @Override

FILE: dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/DaprClientProperties.java
  class DaprClientProperties (line 18) | @ConfigurationProperties(prefix = "dapr.client")
    method DaprClientProperties (line 29) | public DaprClientProperties() {
    method DaprClientProperties (line 40) | public DaprClientProperties(String httpEndpoint, String grpcEndpoint, ...
    method getHttpEndpoint (line 49) | public String getHttpEndpoint() {
    method getGrpcEndpoint (line 53) | public String getGrpcEndpoint() {
    method getHttpPort (line 57) | public Integer getHttpPort() {
    method getGrpcPort (line 61) | public Integer getGrpcPort() {
    method setHttpEndpoint (line 65) | public void setHttpEndpoint(String httpEndpoint) {
    method setGrpcEndpoint (line 69) | public void setGrpcEndpoint(String grpcEndpoint) {
    method setHttpPort (line 73) | public void setHttpPort(Integer httpPort) {
    method setGrpcPort (line 77) | public void setGrpcPort(Integer grpcPort) {
    method getApiToken (line 81) | public String getApiToken() {
    method setApiToken (line 85) | public void setApiToken(String apiToken) {

FILE: dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/DaprConnectionDetails.java
  type DaprConnectionDetails (line 18) | public interface DaprConnectionDetails extends ConnectionDetails {
    method getHttpEndpoint (line 20) | String getHttpEndpoint();
    method getGrpcEndpoint (line 22) | String getGrpcEndpoint();
    method getHttpPort (line 24) | Integer getHttpPort();
    method getGrpcPort (line 26) | Integer getGrpcPort();
    method getApiToken (line 28) | String getApiToken();

FILE: dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/pubsub/DaprPubSubProperties.java
  class DaprPubSubProperties (line 18) | @ConfigurationProperties(prefix = DaprPubSubProperties.CONFIG_PREFIX)
    method getName (line 29) | public String getName() {
    method setName (line 33) | public void setName(String name) {
    method isObservationEnabled (line 37) | public boolean isObservationEnabled() {
    method setObservationEnabled (line 41) | public void setObservationEnabled(boolean observationEnabled) {

FILE: dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/statestore/DaprStateStoreProperties.java
  class DaprStateStoreProperties (line 18) | @ConfigurationProperties(prefix = DaprStateStoreProperties.CONFIG_PREFIX)
    method getName (line 29) | public String getName() {
    method setName (line 33) | public void setName(String name) {
    method getBinding (line 37) | public String getBinding() {
    method setBinding (line 41) | public void setBinding(String binding) {

FILE: dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/client/DaprClientPropertiesTest.java
  class DaprClientPropertiesTest (line 23) | public class DaprClientPropertiesTest {
    method shouldCreateDaprClientPropertiesCorrectly (line 29) | @Test
    method shouldSetDaprClientPropertiesCorrectly (line 46) | @Test
    method shouldMapDaprClientProperties (line 67) | @Test
    method shouldMapDaprClientPropertiesCamelCase (line 88) | @Test
    class EnableDaprClientProperties (line 108) | @EnableConfigurationProperties(DaprClientProperties.class)

FILE: dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/pubsub/DaprPubSubPropertiesTest.java
  class DaprPubSubPropertiesTest (line 22) | public class DaprPubSubPropertiesTest {
    method shouldSetProperties (line 28) | @Test
    method shouldMapDaprPubSubPropertiesCorrectly (line 41) | @Test
    class EnableDaprPubSubProperties (line 57) | @EnableConfigurationProperties(DaprPubSubProperties.class)

FILE: dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/statestore/DaprStateStorePropertiesTest.java
  class DaprStateStorePropertiesTest (line 22) | public class DaprStateStorePropertiesTest {
    method shouldSetDaprStateStorePropertiesCorrectly (line 28) | @Test
    method shouldMapDaprStateStoreProperties (line 41) | @Test
    class EnableDaprStateStoreProperties (line 58) | @EnableConfigurationProperties(DaprStateStoreProperties.class)

FILE: dapr-spring/dapr-spring-boot-tests/src/main/java/io/dapr/spring/boot/testcontainers/service/connection/DaprContainerConnectionDetailsFactory.java
  class DaprContainerConnectionDetailsFactory (line 21) | public class DaprContainerConnectionDetailsFactory
    method DaprContainerConnectionDetailsFactory (line 24) | DaprContainerConnectionDetailsFactory() {
    method getContainerConnectionDetails (line 27) | protected DaprConnectionDetails getContainerConnectionDetails(Containe...
    class DaprContainerConnectionDetails (line 31) | private static final class DaprContainerConnectionDetails
      method DaprContainerConnectionDetails (line 34) | private DaprContainerConnectionDetails(ContainerConnectionSource<Dap...
      method getHttpEndpoint (line 38) | @Override
      method getGrpcEndpoint (line 43) | @Override
      method getHttpPort (line 48) | @Override
      method getGrpcPort (line 53) | @Override
      method getApiToken (line 61) | @Override

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/AbstractDaprKeyValueAdapter.java
  class AbstractDaprKeyValueAdapter (line 29) | public abstract class AbstractDaprKeyValueAdapter implements KeyValueAda...
    method AbstractDaprKeyValueAdapter (line 36) | protected AbstractDaprKeyValueAdapter(DaprClient daprClient, String st...
    method destroy (line 44) | @Override
    method clear (line 49) | @Override
    method put (line 54) | @Override
    method contains (line 69) | @Override
    method get (line 74) | @Override
    method get (line 84) | @Override
    method delete (line 96) | @Override
    method delete (line 111) | @Override
    method getAllOf (line 126) | @Override
    method entries (line 131) | @Override
    method resolveKey (line 136) | private String resolveKey(String keyspace, Object id) {
    method resolveValue (line 140) | private <T> T resolveValue(Mono<State<T>> state) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DaprKeyValueAdapterResolver.java
  class DaprKeyValueAdapterResolver (line 25) | public class DaprKeyValueAdapterResolver implements KeyValueAdapterResol...
    method DaprKeyValueAdapterResolver (line 41) | public DaprKeyValueAdapterResolver(DaprClient daprClient, ObjectMapper...
    method resolve (line 49) | @Override
    method shouldUseMySQL (line 74) | @SuppressWarnings("AbbreviationAsWordInName")
    method shouldUsePostgreSQL (line 82) | @SuppressWarnings("AbbreviationAsWordInName")
    method matchBy (line 90) | private boolean matchBy(String name, Set<String> markers, ComponentMet...
    method getTypeAndVersion (line 94) | private String getTypeAndVersion(ComponentMetadata component) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DaprKeyValueTemplate.java
  class DaprKeyValueTemplate (line 45) | public class DaprKeyValueTemplate implements KeyValueOperations, Applica...
    method DaprKeyValueTemplate (line 67) | public DaprKeyValueTemplate(KeyValueAdapterResolver resolver) {
    method DaprKeyValueTemplate (line 77) | @SuppressWarnings("LineLength")
    method DaprKeyValueTemplate (line 90) | @SuppressWarnings("LineLength")
    method typeCheck (line 103) | private static boolean typeCheck(Class<?> requiredType, @Nullable Obje...
    method setExceptionTranslator (line 107) | public void setExceptionTranslator(PersistenceExceptionTranslator exce...
    method setEventTypesToPublish (line 117) | @SuppressWarnings("rawtypes")
    method setApplicationEventPublisher (line 127) | @Override
    method insert (line 132) | @Override
    method insert (line 145) | @Override
    method update (line 170) | @Override
    method update (line 182) | @Override
    method findById (line 199) | @Override
    method delete (line 223) | @Override
    method delete (line 240) | @SuppressWarnings("unchecked")
    method delete (line 256) | @Override
    method execute (line 272) | @Nullable
    method executeRequired (line 284) | protected <T> T executeRequired(KeyValueCallback<T> action) {
    method find (line 294) | @Override
    method findAll (line 311) | @Override
    method findAll (line 329) | @SuppressWarnings("rawtypes")
    method findInRange (line 335) | @SuppressWarnings("rawtypes")
    method findInRange (line 341) | @SuppressWarnings("rawtypes")
    method count (line 347) | @Override
    method count (line 353) | @Override
    method exists (line 358) | @Override
    method getMappingContext (line 363) | @Override
    method getKeyValueAdapter (line 368) | @Override
    method destroy (line 373) | @Override
    method getKeyValuePersistentEntity (line 378) | private KeyValuePersistentEntity<?, ?> getKeyValuePersistentEntity(Obj...
    method resolveKeySpace (line 382) | private String resolveKeySpace(Class<?> type) {
    method resolveExceptionIfPossible (line 386) | private RuntimeException resolveExceptionIfPossible(RuntimeException e) {
    method potentiallyPublishEvent (line 392) | @SuppressWarnings("rawtypes")

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DefaultIdentifierGenerator.java
  type DefaultIdentifierGenerator (line 32) | enum DefaultIdentifierGenerator implements IdentifierGenerator {
    method generateIdentifierOfType (line 38) | @Override
    method getSecureRandom (line 59) | private SecureRandom getSecureRandom() {
    class OsTools (line 85) | private static class OsTools {
      method secureRandomAlgorithmNames (line 93) | static List<String> secureRandomAlgorithmNames() {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/GeneratingIdAccessor.java
  class GeneratingIdAccessor (line 28) | class GeneratingIdAccessor implements IdentifierAccessor {
    method GeneratingIdAccessor (line 42) | GeneratingIdAccessor(PersistentPropertyAccessor<?> accessor, Persisten...
    method getIdentifier (line 54) | @Override
    method getOrGenerateIdentifier (line 59) | Object getOrGenerateIdentifier() {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/KeyValueAdapterResolver.java
  type KeyValueAdapterResolver (line 18) | public interface KeyValueAdapterResolver {
    method resolve (line 19) | KeyValueAdapter resolve();

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/MySQLDaprKeyValueAdapter.java
  class MySQLDaprKeyValueAdapter (line 36) | @SuppressWarnings("AbbreviationAsWordInName")
    method MySQLDaprKeyValueAdapter (line 66) | public MySQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapper ma...
    method getAllOf (line 79) | @Override
    method deleteAllOf (line 90) | @Override
    method find (line 99) | @Override
    method count (line 117) | @Override
    method count (line 127) | @Override
    method getKeyspaceFilter (line 144) | private String getKeyspaceFilter(String keyspace) {
    method createSql (line 148) | private String createSql(String sqlPattern, String keyspace) {
    method createSql (line 154) | private String createSql(String sqlPattern, String keyspace, Object cr...
    method execUsingBinding (line 165) | private void execUsingBinding(String sql) {
    method queryUsingBinding (line 171) | private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    method convertValues (line 177) | private <T> List<T> convertValues(List<JsonNode> values, Class<T> type) {
    method convertValue (line 187) | private <T> T convertValue(JsonNode value, Class<T> type) {
    method extractCount (line 206) | private long extractCount(List<JsonNode> values) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/PostgreSQLDaprKeyValueAdapter.java
  class PostgreSQLDaprKeyValueAdapter (line 35) | @SuppressWarnings("AbbreviationAsWordInName")
    method PostgreSQLDaprKeyValueAdapter (line 64) | public PostgreSQLDaprKeyValueAdapter(DaprClient daprClient, ObjectMapp...
    method getAllOf (line 77) | @Override
    method deleteAllOf (line 88) | @Override
    method find (line 97) | @Override
    method count (line 115) | @Override
    method count (line 125) | @Override
    method getKeyspaceFilter (line 142) | private String getKeyspaceFilter(String keyspace) {
    method createSql (line 146) | private String createSql(String sqlPattern, String keyspace) {
    method createSql (line 152) | private String createSql(String sqlPattern, String keyspace, Object cr...
    method execUsingBinding (line 175) | private void execUsingBinding(String sql) {
    method queryUsingBinding (line 181) | private <T> T queryUsingBinding(String sql, TypeRef<T> typeRef) {
    method convertValues (line 187) | private <T> Iterable<T> convertValues(List<List<Object>> values, Class...
    method convertValue (line 198) | private <T> T convertValue(Object value, Class<T> type) {
    method extractCount (line 206) | private long extractCount(List<List<Long>> values) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/config/DaprRepositoriesRegistrar.java
  class DaprRepositoriesRegistrar (line 24) | public class DaprRepositoriesRegistrar extends RepositoryBeanDefinitionR...
    method getAnnotation (line 26) | @Override
    method getExtension (line 31) | @Override

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/config/DaprRepositoryConfigurationExtension.java
  class DaprRepositoryConfigurationExtension (line 22) | @SuppressWarnings("unchecked")
    method getModuleName (line 25) | @Override
    method getModulePrefix (line 30) | @Override
    method getDefaultKeyValueTemplateRef (line 35) | @Override

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicate.java
  class DaprPredicate (line 24) | public class DaprPredicate implements Predicate<Object> {
    method DaprPredicate (line 30) | public DaprPredicate(PropertyPath path, Object expected) {
    method DaprPredicate (line 41) | public DaprPredicate(PropertyPath path, Object value, Function<Object,...
    method getPath (line 47) | public PropertyPath getPath() {
    method getValue (line 51) | public Object getValue() {
    method test (line 55) | @Override
    method getValueByPath (line 61) | private Object getValueByPath(Object root, PropertyPath path) {
    method wrap (line 75) | private BeanWrapper wrap(Object o) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicateBuilder.java
  class DaprPredicateBuilder (line 26) | class DaprPredicateBuilder {
    method DaprPredicateBuilder (line 30) | private DaprPredicateBuilder(Part part) {
    method propertyValueOf (line 34) | static DaprPredicateBuilder propertyValueOf(Part part) {
    method isTrue (line 38) | Predicate<Object> isTrue() {
    method isFalse (line 42) | public Predicate<Object> isFalse() {
    method isEqualTo (line 46) | public Predicate<Object> isEqualTo(Object value) {
    method isNull (line 60) | public Predicate<Object> isNull() {
    method isNotNull (line 64) | public Predicate<Object> isNotNull() {
    method isLessThan (line 68) | public Predicate<Object> isLessThan(Object value) {
    method isLessThanEqual (line 72) | public Predicate<Object> isLessThanEqual(Object value) {
    method isGreaterThan (line 76) | public Predicate<Object> isGreaterThan(Object value) {
    method isGreaterThanEqual (line 80) | public Predicate<Object> isGreaterThanEqual(Object value) {
    method matches (line 84) | public Predicate<Object> matches(Object value) {
    method in (line 99) | public Predicate<Object> in(Object value) {
    method contains (line 119) | public Predicate<Object> contains(Object value) {
    method startsWith (line 153) | public Predicate<Object> startsWith(Object value) {
    method endsWith (line 168) | public Predicate<Object> endsWith(Object value) {

FILE: dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicateQueryCreator.java
  class DaprPredicateQueryCreator (line 34) | public class DaprPredicateQueryCreator extends AbstractQueryCreator<KeyV...
    method DaprPredicateQueryCreator (line 36) | public DaprPredicateQueryCreator(PartTree tree, ParameterAccessor para...
    method create (line 40) | @Override
    method and (line 84) | @Override
    method or (line 89) | @Override
    method complete (line 94) | @Override

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/DaprMessagingOperations.java
  type DaprMessagingOperations (line 18) | public interface DaprMessagingOperations<T> {
    method send (line 27) | void send(String topic, T message);
    method newMessage (line 35) | SendMessageBuilder<T> newMessage(T message);
    type SendMessageBuilder (line 43) | interface SendMessageBuilder<T> {
      method withTopic (line 51) | SendMessageBuilder<T> withTopic(String topic);
      method send (line 56) | void send();
      method sendAsync (line 63) | Mono<Void> sendAsync();

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/DaprMessagingTemplate.java
  class DaprMessagingTemplate (line 40) | public class DaprMessagingTemplate<T> implements DaprMessagingOperations...
    method DaprMessagingTemplate (line 71) | public DaprMessagingTemplate(DaprClient daprClient, String pubsubName,...
    method setApplicationContext (line 78) | @Override
    method setBeanName (line 83) | @Override
    method afterSingletonsInstantiated (line 92) | @Override
    method send (line 110) | @Override
    method newMessage (line 115) | @Override
    method doSend (line 120) | private void doSend(String topic, T message) {
    method doSendAsync (line 124) | private Mono<Void> doSendAsync(String topic, T message) {
    method canUseObservation (line 134) | private boolean canUseObservation() {
    method publishEvent (line 138) | private Mono<Void> publishEvent(String pubsubName, String topic, T mes...
    method publishEventWithObservation (line 142) | private Mono<Void> publishEventWithObservation(String pubsubName, Stri...
    method getReactorContext (line 163) | private Context getReactorContext(DaprMessagingSenderContext senderCon...
    method createObservation (line 167) | private Observation createObservation(DaprMessagingSenderContext sende...
    class DefaultSendMessageBuilder (line 176) | private static class DefaultSendMessageBuilder<T> implements SendMessa...
      method DefaultSendMessageBuilder (line 184) | DefaultSendMessageBuilder(DaprMessagingTemplate<T> template, T messa...
      method withTopic (line 189) | @Override
      method send (line 195) | @Override
      method sendAsync (line 200) | @Override

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingObservationConvention.java
  type DaprMessagingObservationConvention (line 23) | public interface DaprMessagingObservationConvention extends ObservationC...
    method supportsContext (line 25) | @Override
    method getName (line 30) | @Override
    method getDefault (line 35) | static DaprMessagingObservationConvention getDefault() {

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingObservationDocumentation.java
  type DaprMessagingObservationDocumentation (line 26) | public enum DaprMessagingObservationDocumentation implements Observation...
    method getDefaultConvention (line 33) | @Override
    method getPrefix (line 38) | @Override
    method getLowCardinalityKeyNames (line 43) | @Override
    type TemplateLowCardinalityTags (line 52) | public enum TemplateLowCardinalityTags implements KeyName {
      method asString (line 58) | @Override

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingSenderContext.java
  class DaprMessagingSenderContext (line 24) | public final class DaprMessagingSenderContext extends SenderContext<Dapr...
    method DaprMessagingSenderContext (line 29) | private DaprMessagingSenderContext(Carrier dataHolder, String topic, S...
    method newContext (line 42) | public static DaprMessagingSenderContext newContext(String topic, Stri...
    method properties (line 51) | public Map<String, String> properties() {
    method getBeanName (line 65) | public String getBeanName() {
    method getDestination (line 73) | public String getDestination() {
    class Carrier (line 81) | public static final class Carrier {
      method Carrier (line 85) | private Carrier() {
      method property (line 88) | public void property(String key, String value) {
      method properties (line 92) | public Map<String, String> properties() {

FILE: dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DefaultDaprMessagingObservationConvention.java
  class DefaultDaprMessagingObservationConvention (line 22) | class DefaultDaprMessagingObservationConvention implements DaprMessaging...
    method getLowCardinalityKeyValues (line 29) | @Override
    method getName (line 37) | @Override
    method getContextualName (line 42) | @Override

FILE: dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java
  class DaprWorkflowsConfiguration (line 31) | @Configuration
    method DaprWorkflowsConfiguration (line 37) | public DaprWorkflowsConfiguration(WorkflowRuntimeBuilder workflowRunti...
    method registerWorkflowsAndActivities (line 45) | private void registerWorkflowsAndActivities(ApplicationContext applica...
    method setApplicationContext (line 90) | @Override

FILE: docs/dapr-sdk-workflows/script.js
  function loadScripts (line 31) | function loadScripts(doc, tag) {
  function createElem (line 41) | function createElem(doc, tag, path) {
  function show (line 48) | function show(tableId, selected, columns) {
  function updateTabs (line 65) | function updateTabs(tableId, selected) {
  function switchTab (line 82) | function switchTab(e) {
  function indexFilesLoaded (line 101) | function indexFilesLoaded() {

FILE: docs/dapr-sdk-workflows/search.js
  function escapeHtml (line 41) | function escapeHtml(str) {
  function getHighlightedText (line 44) | function getHighlightedText(item, matcher, fallbackMatcher) {
  function getURLPrefix (line 52) | function getURLPrefix(ui) {
  function createSearchPattern (line 72) | function createSearchPattern(term) {
  function createMatcher (line 95) | function createMatcher(pattern, flags) {
  function rankMatch (line 187) | function rankMatch(match, category) {
  function doSearch (line 229) | function doSearch(request, response) {

FILE: docs/script.js
  function loadScripts (line 31) | function loadScripts(doc, tag) {
  function createElem (line 41) | function createElem(doc, tag, path) {
  function show (line 48) | function show(tableId, selected, columns) {
  function updateTabs (line 65) | function updateTabs(tableId, selected) {
  function switchTab (line 82) | function switchTab(e) {
  function indexFilesLoaded (line 101) | function indexFilesLoaded() {

FILE: docs/search.js
  function escapeHtml (line 41) | function escapeHtml(str) {
  function getHighlightedText (line 44) | function getHighlightedText(item, matcher, fallbackMatcher) {
  function getURLPrefix (line 52) | function getURLPrefix(ui) {
  function createSearchPattern (line 72) | function createSearchPattern(term) {
  function createMatcher (line 95) | function createMatcher(pattern, flags) {
  function rankMatch (line 187) | function rankMatch(match, category) {
  function doSearch (line 229) | function doSearch(request, response) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/CompositeTaskFailedException.java
  class CompositeTaskFailedException (line 26) | public class CompositeTaskFailedException extends RuntimeException {
    method CompositeTaskFailedException (line 29) | CompositeTaskFailedException() {
    method CompositeTaskFailedException (line 33) | CompositeTaskFailedException(List<Exception> exceptions) {
    method CompositeTaskFailedException (line 37) | CompositeTaskFailedException(String message, List<Exception> exception...
    method CompositeTaskFailedException (line 42) | CompositeTaskFailedException(String message, Throwable cause, List<Exc...
    method CompositeTaskFailedException (line 47) | CompositeTaskFailedException(Throwable cause, List<Exception> exceptio...
    method CompositeTaskFailedException (line 52) | CompositeTaskFailedException(String message, Throwable cause, boolean ...
    method getExceptions (line 64) | public List<Exception> getExceptions() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DataConverter.java
  type DataConverter (line 29) | public interface DataConverter {
    method serialize (line 36) | @Nullable
    method deserialize (line 48) | @Nullable
    class DataConverterException (line 52) | class DataConverterException extends RuntimeException {
      method DataConverterException (line 53) | public DataConverterException(String message, Throwable cause) {
    method getInstantFromTimestamp (line 64) | static Instant getInstantFromTimestamp(Timestamp ts) {
    method getTimestampFromInstant (line 78) | static Timestamp getTimestampFromInstant(Instant instant) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DurableTaskClient.java
  class DurableTaskClient (line 37) | public abstract class DurableTaskClient implements AutoCloseable {
    method close (line 42) | @Override
    method scheduleNewOrchestrationInstance (line 53) | public String scheduleNewOrchestrationInstance(String orchestratorName) {
    method scheduleNewOrchestrationInstance (line 64) | public String scheduleNewOrchestrationInstance(String orchestratorName...
    method scheduleNewOrchestrationInstance (line 76) | public String scheduleNewOrchestrationInstance(String orchestratorName...
    method scheduleNewOrchestrationInstance (line 91) | public abstract String scheduleNewOrchestrationInstance(
    method raiseEvent (line 110) | public void raiseEvent(String instanceId, String eventName) {
    method raiseEvent (line 130) | public abstract void raiseEvent(String instanceId, String eventName, @...
    method getInstanceMetadata (line 142) | @Nullable
    method waitForInstanceStart (line 162) | @Nullable
    method waitForInstanceStart (line 183) | @Nullable
    method waitForInstanceCompletion (line 210) | @Nullable
    method terminate (line 237) | public abstract void terminate(String instanceId, @Nullable Object out...
    method purgeInstance (line 255) | public abstract PurgeResult purgeInstance(String instanceId);
    method purgeInstances (line 275) | public abstract PurgeResult purgeInstances(PurgeInstanceCriteria purge...
    method restartInstance (line 286) | public abstract String restartInstance(String instanceId, boolean rest...
    method suspendInstance (line 293) | public void suspendInstance(String instanceId) {
    method suspendInstance (line 303) | public abstract void suspendInstance(String instanceId, @Nullable Stri...
    method resumeInstance (line 310) | public void resumeInstance(String instanceId) {
    method resumeInstance (line 320) | public abstract void resumeInstance(String instanceId, @Nullable Strin...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DurableTaskGrpcClient.java
  class DurableTaskGrpcClient (line 51) | public final class DurableTaskGrpcClient extends DurableTaskClient {
    method DurableTaskGrpcClient (line 64) | DurableTaskGrpcClient(DurableTaskGrpcClientBuilder builder) {
    method close (line 152) | @Override
    method scheduleNewOrchestrationInstance (line 165) | @Override
    method raiseEvent (line 209) | @Override
    method getInstanceMetadata (line 227) | @Override
    method waitForInstanceStart (line 237) | @Override
    method waitForInstanceCompletion (line 265) | @Override
    method terminate (line 293) | @Override
    method purgeInstance (line 309) | @Override
    method purgeInstances (line 319) | @Override
    method suspendInstance (line 352) | @Override
    method resumeInstance (line 362) | @Override
    method restartInstance (line 372) | @Override
    method toPurgeResult (line 391) | private PurgeResult toPurgeResult(OrchestratorService.PurgeInstancesRe...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DurableTaskGrpcClientBuilder.java
  class DurableTaskGrpcClientBuilder (line 23) | public final class DurableTaskGrpcClientBuilder {
    method dataConverter (line 39) | public DurableTaskGrpcClientBuilder dataConverter(DataConverter dataCo...
    method grpcChannel (line 57) | public DurableTaskGrpcClientBuilder grpcChannel(Channel channel) {
    method tracer (line 68) | public DurableTaskGrpcClientBuilder tracer(Tracer tracer) {
    method port (line 79) | public DurableTaskGrpcClientBuilder port(int port) {
    method tlsCaPath (line 91) | public DurableTaskGrpcClientBuilder tlsCaPath(String tlsCaPath) {
    method tlsCertPath (line 103) | public DurableTaskGrpcClientBuilder tlsCertPath(String tlsCertPath) {
    method tlsKeyPath (line 115) | public DurableTaskGrpcClientBuilder tlsKeyPath(String tlsKeyPath) {
    method insecure (line 128) | public DurableTaskGrpcClientBuilder insecure(boolean insecure) {
    method build (line 138) | public DurableTaskClient build() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DurableTaskGrpcWorker.java
  class DurableTaskGrpcWorker (line 47) | public final class DurableTaskGrpcWorker implements AutoCloseable {
    method DurableTaskGrpcWorker (line 69) | DurableTaskGrpcWorker(DurableTaskGrpcWorkerBuilder builder) {
    method start (line 121) | public void start() {
    method close (line 135) | public void close() {
    method startAndBlock (line 160) | public void startAndBlock() {
    method stop (line 241) | public void stop() {
    method closeSideCarChannel (line 245) | private void closeSideCarChannel() {
    method shutDownWorkerPool (line 257) | private void shutDownWorkerPool() {
    method getSidecarAddress (line 275) | private String getSidecarAddress() {
    method extractTraceContext (line 286) | private Context extractTraceContext(OrchestratorService.ActivityReques...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/DurableTaskGrpcWorkerBuilder.java
  class DurableTaskGrpcWorkerBuilder (line 28) | public final class DurableTaskGrpcWorkerBuilder {
    method addOrchestration (line 44) | public DurableTaskGrpcWorkerBuilder addOrchestration(TaskOrchestration...
    method addActivity (line 55) | public DurableTaskGrpcWorkerBuilder addActivity(TaskActivityFactory fa...
    method grpcChannel (line 84) | public DurableTaskGrpcWorkerBuilder grpcChannel(Channel channel) {
    method port (line 95) | public DurableTaskGrpcWorkerBuilder port(int port) {
    method dataConverter (line 106) | public DurableTaskGrpcWorkerBuilder dataConverter(DataConverter dataCo...
    method maximumTimerInterval (line 118) | public DurableTaskGrpcWorkerBuilder maximumTimerInterval(Duration maxi...
    method withExecutorService (line 129) | public DurableTaskGrpcWorkerBuilder withExecutorService(ExecutorServic...
    method appId (line 143) | public DurableTaskGrpcWorkerBuilder appId(String appId) {
    method build (line 153) | public DurableTaskGrpcWorker build() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/FailureDetails.java
  class FailureDetails (line 29) | public final class FailureDetails {
    method FailureDetails (line 35) | FailureDetails(
    method FailureDetails (line 48) | FailureDetails(Exception exception) {
    method FailureDetails (line 52) | FailureDetails(TaskFailureDetails proto) {
    method getErrorType (line 65) | @Nonnull
    method getErrorMessage (line 76) | @Nonnull
    method getStackTrace (line 87) | @Nullable
    method isNonRetriable (line 97) | public boolean isNonRetriable() {
    method isCausedBy (line 114) | public boolean isCausedBy(Class<? extends Exception> exceptionClass) {
    method getFullStackTrace (line 133) | public static String getFullStackTrace(Throwable e) {
    method toProto (line 144) | TaskFailureDetails toProto() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/Helpers.java
  class Helpers (line 20) | final class Helpers {
    method throwIfArgumentNull (line 23) | static @Nonnull <V> V throwIfArgumentNull(@Nullable V argValue, String...
    method throwIfArgumentNullOrWhiteSpace (line 31) | static @Nonnull String throwIfArgumentNullOrWhiteSpace(String argValue...
    method throwIfOrchestratorComplete (line 40) | static void throwIfOrchestratorComplete(boolean isComplete) {
    method isInfiniteTimeout (line 46) | static boolean isInfiniteTimeout(Duration timeout) {
    method powExact (line 50) | static double powExact(double base, double exponent) throws Arithmetic...
    method isNullOrEmpty (line 70) | static boolean isNullOrEmpty(String s) {
    method Helpers (line 75) | private Helpers() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/JacksonDataConverter.java
  class JacksonDataConverter (line 23) | public final class JacksonDataConverter implements DataConverter {
    method serialize (line 29) | @Override
    method deserialize (line 45) | @Override

FILE: durabletask-client/src/main/java/io/dapr/durabletask/NewOrchestrationInstanceOptions.java
  class NewOrchestrationInstanceOptions (line 21) | public final class NewOrchestrationInstanceOptions {
    method NewOrchestrationInstanceOptions (line 31) | public NewOrchestrationInstanceOptions() {
    method setVersion (line 40) | public NewOrchestrationInstanceOptions setVersion(String version) {
    method setInstanceId (line 52) | public NewOrchestrationInstanceOptions setInstanceId(String instanceId) {
    method setInput (line 65) | public NewOrchestrationInstanceOptions setInput(Object input) {
    method setStartTime (line 78) | public NewOrchestrationInstanceOptions setStartTime(Instant startTime) {
    method setAppID (line 89) | public NewOrchestrationInstanceOptions setAppID(String appID) {
    method getVersion (line 99) | public String getVersion() {
    method getInstanceId (line 108) | public String getInstanceId() {
    method getInput (line 117) | public Object getInput() {
    method getStartTime (line 126) | public Instant getStartTime() {
    method getAppID (line 135) | public String getAppID() {
    method hasAppID (line 144) | public boolean hasAppID() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/NonDeterministicOrchestratorException.java
  class NonDeterministicOrchestratorException (line 16) | final class NonDeterministicOrchestratorException extends RuntimeExcepti...
    method NonDeterministicOrchestratorException (line 17) | public NonDeterministicOrchestratorException(String message) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/OrchestrationMetadata.java
  class OrchestrationMetadata (line 30) | public final class OrchestrationMetadata {
    method OrchestrationMetadata (line 44) | OrchestrationMetadata(
    method OrchestrationMetadata (line 51) | OrchestrationMetadata(
    method getName (line 74) | public String getName() {
    method getInstanceId (line 83) | public String getInstanceId() {
    method getRuntimeStatus (line 92) | public OrchestrationRuntimeStatus getRuntimeStatus() {
    method getCreatedAt (line 101) | public Instant getCreatedAt() {
    method getLastUpdatedAt (line 110) | public Instant getLastUpdatedAt() {
    method getSerializedInput (line 119) | public String getSerializedInput() {
    method getSerializedOutput (line 128) | public String getSerializedOutput() {
    method getFailureDetails (line 140) | public FailureDetails getFailureDetails() {
    method isRunning (line 149) | public boolean isRunning() {
    method isCompleted (line 162) | public boolean isCompleted() {
    method readInputAs (line 180) | public <T> T readInputAs(Class<T> type) {
    method readOutputAs (line 195) | public <T> T readOutputAs(Class<T> type) {
    method readCustomStatusAs (line 210) | public <T> T readCustomStatusAs(Class<T> type) {
    method isCustomStatusFetched (line 222) | public boolean isCustomStatusFetched() {
    method readPayloadAs (line 226) | private <T> T readPayloadAs(Class<T> type, String payload) {
    method toString (line 245) | @Override
    method getTrimmedPayload (line 266) | private static String getTrimmedPayload(String payload) {
    method isInstanceFound (line 280) | public boolean isInstanceFound() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/OrchestrationRunner.java
  class OrchestrationRunner (line 32) | public final class OrchestrationRunner {
    method OrchestrationRunner (line 36) | private OrchestrationRunner() {
    method loadAndRun (line 53) | public static <R> String loadAndRun(
    method loadAndRun (line 75) | public static <R> byte[] loadAndRun(
    method loadAndRun (line 103) | public static String loadAndRun(
    method loadAndRun (line 121) | public static byte[] loadAndRun(byte[] orchestratorRequestBytes, TaskO...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/OrchestrationRuntimeStatus.java
  type OrchestrationRuntimeStatus (line 30) | public enum OrchestrationRuntimeStatus {
    method fromProtobuf (line 78) | static OrchestrationRuntimeStatus fromProtobuf(Orchestration.Orchestra...
    method toProtobuf (line 103) | static Orchestration.OrchestrationStatus toProtobuf(OrchestrationRunti...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/OrchestratorFunction.java
  type OrchestratorFunction (line 24) | @FunctionalInterface
    method apply (line 37) | R apply(TaskOrchestrationContext ctx);

FILE: durabletask-client/src/main/java/io/dapr/durabletask/PurgeInstanceCriteria.java
  class PurgeInstanceCriteria (line 25) | public final class PurgeInstanceCriteria {
    method PurgeInstanceCriteria (line 35) | public PurgeInstanceCriteria() {
    method setCreatedTimeFrom (line 45) | public PurgeInstanceCriteria setCreatedTimeFrom(Instant createdTimeFro...
    method setCreatedTimeTo (line 57) | public PurgeInstanceCriteria setCreatedTimeTo(Instant createdTimeTo) {
    method setRuntimeStatusList (line 69) | public PurgeInstanceCriteria setRuntimeStatusList(List<OrchestrationRu...
    method setTimeout (line 81) | public PurgeInstanceCriteria setTimeout(Duration timeout) {
    method getCreatedTimeFrom (line 91) | @Nullable
    method getCreatedTimeTo (line 101) | @Nullable
    method getRuntimeStatusList (line 111) | public List<OrchestrationRuntimeStatus> getRuntimeStatusList() {
    method getTimeout (line 120) | @Nullable

FILE: durabletask-client/src/main/java/io/dapr/durabletask/PurgeResult.java
  class PurgeResult (line 21) | public final class PurgeResult {
    method PurgeResult (line 25) | PurgeResult(int deletedInstanceCount) {
    method getDeletedInstanceCount (line 34) | public int getDeletedInstanceCount() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/RetryContext.java
  class RetryContext (line 21) | public final class RetryContext {
    method RetryContext (line 27) | RetryContext(
    method getOrchestrationContext (line 48) | public TaskOrchestrationContext getOrchestrationContext() {
    method getLastFailure (line 57) | public FailureDetails getLastFailure() {
    method getLastAttemptNumber (line 67) | public int getLastAttemptNumber() {
    method getTotalRetryTime (line 76) | public Duration getTotalRetryTime() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/RetryHandler.java
  type RetryHandler (line 22) | @FunctionalInterface
    method handle (line 30) | boolean handle(RetryContext context);

FILE: durabletask-client/src/main/java/io/dapr/durabletask/RetryPolicy.java
  class RetryPolicy (line 23) | public final class RetryPolicy {
    method RetryPolicy (line 38) | public RetryPolicy(int maxNumberOfAttempts, Duration firstRetryInterva...
    method setMaxNumberOfAttempts (line 53) | public RetryPolicy setMaxNumberOfAttempts(int maxNumberOfAttempts) {
    method setFirstRetryInterval (line 68) | public RetryPolicy setFirstRetryInterval(Duration firstRetryInterval) {
    method setBackoffCoefficient (line 90) | public RetryPolicy setBackoffCoefficient(double backoffCoefficient) {
    method setMaxRetryInterval (line 108) | public RetryPolicy setMaxRetryInterval(@Nullable Duration maxRetryInte...
    method setRetryTimeout (line 123) | public RetryPolicy setRetryTimeout(Duration retryTimeout) {
    method getMaxNumberOfAttempts (line 137) | public int getMaxNumberOfAttempts() {
    method getFirstRetryInterval (line 146) | public Duration getFirstRetryInterval() {
    method getBackoffCoefficient (line 155) | public double getBackoffCoefficient() {
    method getMaxRetryInterval (line 164) | public Duration getMaxRetryInterval() {
    method getRetryTimeout (line 173) | public Duration getRetryTimeout() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/Task.java
  class Task (line 43) | public abstract class Task<V> {
    method Task (line 46) | Task(CompletableFuture<V> future) {
    method isDone (line 55) | public boolean isDone() {
    method isCancelled (line 64) | public boolean isCancelled() {
    method await (line 73) | public abstract V await();
    method thenApply (line 83) | public abstract <U> Task<U> thenApply(Function<V, U> fn);
    method thenAccept (line 92) | public abstract Task<Void> thenAccept(Consumer<V> fn);

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskActivity.java
  type TaskActivity (line 35) | @FunctionalInterface
    method run (line 44) | Object run(TaskActivityContext ctx);

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskActivityContext.java
  type TaskActivityContext (line 20) | public interface TaskActivityContext {
    method getName (line 26) | String getName();
    method getInput (line 35) | <T> T getInput(Class<T> targetType);
    method getTaskExecutionId (line 42) | String getTaskExecutionId();
    method getTaskId (line 49) | int getTaskId();
    method getTraceParent (line 55) | String getTraceParent();

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskActivityExecutor.java
  class TaskActivityExecutor (line 19) | public final class TaskActivityExecutor {
    method TaskActivityExecutor (line 31) | public TaskActivityExecutor(
    method execute (line 51) | public String execute(String taskName, String input,
    class TaskActivityContextImpl (line 77) | private class TaskActivityContextImpl implements TaskActivityContext {
      method TaskActivityContextImpl (line 86) | public TaskActivityContextImpl(String activityName, String rawInput,
      method getName (line 95) | @Override
      method getInput (line 100) | @Override
      method getTaskExecutionId (line 109) | @Override
      method getTaskId (line 114) | @Override
      method getTraceParent (line 119) | @Override

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskActivityFactory.java
  type TaskActivityFactory (line 19) | public interface TaskActivityFactory {
    method getName (line 25) | String getName();
    method create (line 32) | TaskActivity create();

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskCanceledException.java
  class TaskCanceledException (line 21) | public final class TaskCanceledException extends TaskFailedException {
    method TaskCanceledException (line 23) | TaskCanceledException(String message, String taskName, int taskId) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskFailedException.java
  class TaskFailedException (line 23) | public class TaskFailedException extends RuntimeException {
    method TaskFailedException (line 28) | TaskFailedException(String taskName, int taskId, FailureDetails detail...
    method TaskFailedException (line 32) | TaskFailedException(String message, String taskName, int taskId, Failu...
    method getTaskId (line 49) | public int getTaskId() {
    method getTaskName (line 58) | public String getTaskName() {
    method getErrorDetails (line 67) | public FailureDetails getErrorDetails() {
    method getExceptionMessage (line 71) | private static String getExceptionMessage(String taskName, int taskId,...

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskOptions.java
  class TaskOptions (line 19) | public final class TaskOptions {
    method TaskOptions (line 24) | private TaskOptions(RetryPolicy retryPolicy, RetryHandler retryHandler...
    method builder (line 35) | public static Builder builder() {
    method create (line 44) | public static TaskOptions create() {
    method withRetryPolicy (line 54) | public static TaskOptions withRetryPolicy(RetryPolicy retryPolicy) {
    method withRetryHandler (line 64) | public static TaskOptions withRetryHandler(RetryHandler retryHandler) {
    method withAppID (line 74) | public static TaskOptions withAppID(String appID) {
    method hasRetryPolicy (line 78) | boolean hasRetryPolicy() {
    method getRetryPolicy (line 87) | public RetryPolicy getRetryPolicy() {
    method hasRetryHandler (line 91) | boolean hasRetryHandler() {
    method getRetryHandler (line 100) | public RetryHandler getRetryHandler() {
    method getAppID (line 109) | public String getAppID() {
    method hasAppID (line 113) | boolean hasAppID() {
    class Builder (line 120) | public static final class Builder {
      method Builder (line 125) | private Builder() {
      method retryPolicy (line 135) | public Builder retryPolicy(RetryPolicy retryPolicy) {
      method retryHandler (line 146) | public Builder retryHandler(RetryHandler retryHandler) {
      method appID (line 157) | public Builder appID(String appID) {
      method build (line 167) | public TaskOptions build() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskOrchestration.java
  type TaskOrchestration (line 73) | @FunctionalInterface
    method run (line 81) | void run(TaskOrchestrationContext ctx);

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskOrchestrationContext.java
  type TaskOrchestrationContext (line 28) | public interface TaskOrchestrationContext {
    method getName (line 34) | String getName();
    method getInput (line 43) | <V> V getInput(Class<V> targetType);
    method getInstanceId (line 50) | String getInstanceId();
    method getAppId (line 58) | String getAppId();
    method getCurrentInstant (line 65) | Instant getCurrentInstant();
    method getIsReplaying (line 82) | boolean getIsReplaying();
    method allOf (line 93) | <V> Task<List<V>> allOf(List<Task<V>> tasks);
    method allOf (line 131) | default <V> Task<List<V>> allOf(Task<V>... tasks) {
    method anyOf (line 143) | Task<Task<?>> anyOf(List<Task<?>> tasks);
    method anyOf (line 184) | default Task<Task<?>> anyOf(Task<?>... tasks) {
    method createTimer (line 199) | Task<Void> createTimer(String name, Duration delay);
    method createTimer (line 211) | Task<Void> createTimer(Duration delay);
    method createTimer (line 223) | Task<Void> createTimer(ZonedDateTime zonedDateTime);
    method createTimer (line 236) | Task<Void> createTimer(String name, ZonedDateTime zonedDateTime);
    method complete (line 243) | void complete(Object output);
    method callActivity (line 274) | <V> Task<V> callActivity(String name, Object input, TaskOptions option...
    method callActivity (line 284) | default Task<Void> callActivity(String name) {
    method callActivity (line 297) | default Task<Void> callActivity(String name, Object input) {
    method callActivity (line 311) | default <V> Task<V> callActivity(String name, Class<V> returnType) {
    method callActivity (line 327) | default <V> Task<V> callActivity(String name, Object input, Class<V> r...
    method callActivity (line 341) | default Task<Void> callActivity(String name, Object input, TaskOptions...
    method continueAsNew (line 351) | default void continueAsNew(Object input) {
    method continueAsNew (line 379) | void continueAsNew(Object input, boolean preserveUnprocessedEvents);
    method isPatched (line 388) | boolean isPatched(String patchName);
    method newUuid (line 401) | default UUID newUuid() {
    method sendEvent (line 411) | default void sendEvent(String instanceID, String eventName) {
    method sendEvent (line 422) | void sendEvent(String instanceId, String eventName, Object eventData);
    method callSubOrchestrator (line 434) | default Task<Void> callSubOrchestrator(String name) {
    method callSubOrchestrator (line 448) | default Task<Void> callSubOrchestrator(String name, Object input) {
    method callSubOrchestrator (line 464) | default <V> Task<V> callSubOrchestrator(String name, Object input, Cla...
    method callSubOrchestrator (line 481) | default <V> Task<V> callSubOrchestrator(String name, Object input, Str...
    method callSubOrchestrator (line 497) | default Task<Void> callSubOrchestrator(String name, Object input, Stri...
    method callSubOrchestrator (line 537) | <V> Task<V> callSubOrchestrator(
    method waitForExternalEvent (line 566) | <V> Task<V> waitForExternalEvent(String name, Duration timeout, Class<...
    method waitForExternalEvent (line 579) | default Task<Void> waitForExternalEvent(String name, Duration timeout)...
    method waitForExternalEvent (line 592) | default Task<Void> waitForExternalEvent(String name) {
    method waitForExternalEvent (line 607) | default <V> Task<V> waitForExternalEvent(String name, Class<V> dataTyp...
    method setCustomStatus (line 627) | void setCustomStatus(Object customStatus);
    method clearCustomStatus (line 632) | void clearCustomStatus();

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskOrchestrationExecutor.java
  class TaskOrchestrationExecutor (line 53) | public final class TaskOrchestrationExecutor {
    method TaskOrchestrationExecutor (line 71) | public TaskOrchestrationExecutor(
    method execute (line 91) | public TaskOrchestratorResult execute(List<HistoryEvents.HistoryEvent>...
    class ContextImplTask (line 131) | private class ContextImplTask implements TaskOrchestrationContext {
      method ContextImplTask (line 166) | public ContextImplTask(List<HistoryEvents.HistoryEvent> pastEvents,
      method getName (line 171) | @Override
      method setName (line 177) | private void setName(String name) {
      method setInput (line 182) | private void setInput(String rawInput) {
      method getInput (line 186) | @Override
      method getInstanceId (line 195) | @Override
      method setInstanceId (line 201) | private void setInstanceId(String instanceId) {
      method getAppId (line 206) | @Override
      method setAppId (line 211) | private void setAppId(String appId) {
      method hasSourceAppId (line 215) | private boolean hasSourceAppId() {
      method hasTargetAppId (line 219) | private boolean hasTargetAppId(TaskOptions options) {
      method getCurrentInstant (line 223) | @Override
      method setCurrentInstant (line 229) | private void setCurrentInstant(Instant instant) {
      method getCustomStatus (line 234) | private String getCustomStatus() {
      method setCustomStatus (line 238) | @Override
      method clearCustomStatus (line 243) | @Override
      method getIsReplaying (line 248) | @Override
      method setDoneReplaying (line 253) | private void setDoneReplaying() {
      method completedTask (line 257) | public <V> Task<V> completedTask(V value) {
      method allOf (line 263) | @Override
      method anyOf (line 310) | @Override
      method callActivity (line 335) | @Override
      method isPatched (line 401) | @Override
      method checkPatch (line 411) | public boolean checkPatch(String patchName) {
      method continueAsNew (line 429) | @Override
      method newUuid (line 445) | @Override
      method sendEvent (line 459) | @Override
      method callSubOrchestrator (line 491) | @Override
      method createAppropriateTask (line 573) | private <V> Task<V> createAppropriateTask(TaskFactory<V> taskFactory...
      method waitForExternalEvent (line 583) | public <V> Task<V> waitForExternalEvent(String name, Duration timeou...
      method handleTaskScheduled (line 636) | private void handleTaskScheduled(HistoryEvents.HistoryEvent e) {
      method handleTaskCompleted (line 657) | @SuppressWarnings("unchecked")
      method handleTaskFailed (line 689) | private void handleTaskFailed(HistoryEvents.HistoryEvent e) {
      method handleEventRaised (line 712) | @SuppressWarnings("unchecked")
      method handleEventWhileSuspended (line 741) | private void handleEventWhileSuspended(HistoryEvents.HistoryEvent hi...
      method handleExecutionSuspended (line 747) | private void handleExecutionSuspended(HistoryEvents.HistoryEvent his...
      method handleExecutionResumed (line 751) | private void handleExecutionResumed(HistoryEvents.HistoryEvent histo...
      method createTimer (line 758) | public Task<Void> createTimer(Duration duration) {
      method createTimer (line 766) | @Override
      method createTimer (line 775) | public Task<Void> createTimer(String name, Duration duration) {
      method createTimer (line 784) | @Override
      method createTimer (line 794) | private Task<Void> createTimer(String name, Instant finalFireAt) {
      method createInstantTimer (line 798) | private CompletableTask<Void> createInstantTimer(String name, int id...
      method handleTimerCreated (line 816) | private void handleTimerCreated(HistoryEvents.HistoryEvent e) {
      method handleTimerFired (line 841) | public void handleTimerFired(HistoryEvents.HistoryEvent e) {
      method handleSubOrchestrationCreated (line 861) | private void handleSubOrchestrationCreated(HistoryEvents.HistoryEven...
      method handleSubOrchestrationCompleted (line 878) | private void handleSubOrchestrationCompleted(HistoryEvents.HistoryEv...
      method handleSubOrchestrationFailed (line 910) | private void handleSubOrchestrationFailed(HistoryEvents.HistoryEvent...
      method handleExecutionTerminated (line 934) | private void handleExecutionTerminated(HistoryEvents.HistoryEvent e) {
      method complete (line 940) | @Override
      method fail (line 950) | public void fail(FailureDetails failureDetails) {
      method completeInternal (line 956) | private void completeInternal(Object output, Orchestration.Orchestra...
      method completeInternal (line 961) | private void completeInternal(
      method addCarryoverEvents (line 1006) | private void addCarryoverEvents(OrchestratorActions.CompleteWorkflow...
      method waitingForEvents (line 1026) | private boolean waitingForEvents() {
      method processNextEvent (line 1030) | private boolean processNextEvent() {
      method processEvent (line 1034) | private void processEvent(HistoryEvents.HistoryEvent e) {
      method setVersionNotRegistered (line 1149) | public void setVersionNotRegistered() {
      class TaskRecord (line 1165) | private class TaskRecord<V> {
        method TaskRecord (line 1170) | public TaskRecord(CompletableTask<V> task, String taskName, Class<...
        method getTask (line 1176) | public CompletableTask<V> getTask() {
        method getTaskName (line 1180) | public String getTaskName() {
        method getDataType (line 1184) | public Class<V> getDataType() {
      class OrchestrationHistoryIterator (line 1189) | private class OrchestrationHistoryIterator {
        method OrchestrationHistoryIterator (line 1196) | public OrchestrationHistoryIterator(List<HistoryEvents.HistoryEven...
        method moveNext (line 1203) | public boolean moveNext() {
        method getNewEvents (line 1223) | List<HistoryEvents.HistoryEvent> getNewEvents() {
        method getCurrentHistoryIndex (line 1227) | int getCurrentHistoryIndex() {
      class TimerTask (line 1232) | private class TimerTask extends CompletableTask<Void> {
        method TimerTask (line 1236) | public TimerTask(String name, Instant finalFireAt) {
        method createTimerChain (line 1250) | private CompletableFuture<Void> createTimerChain(String name, Inst...
        method createTimerTask (line 1263) | private CompletableTask<Void> createTimerTask(String name, Instant...
        method handleSubTimerSuccess (line 1276) | private void handleSubTimerSuccess() {
        method await (line 1285) | @Override
      class ExternalEventTask (line 1292) | private class ExternalEventTask<V> extends CompletableTask<V> {
        method ExternalEventTask (line 1297) | public ExternalEventTask(String eventName, int taskId, Duration ti...
        method handleException (line 1304) | @Override
      class RetriableTask (line 1321) | private class RetriableTask<V> extends CompletableTask<V> {
        method RetriableTask (line 1334) | public RetriableTask(TaskOrchestrationContext context, TaskFactory...
        method RetriableTask (line 1338) | public RetriableTask(TaskOrchestrationContext context, TaskFactory...
        method RetriableTask (line 1342) | private RetriableTask(
        method createChildTask (line 1357) | private void createChildTask(TaskFactory<V> taskFactory) {
        method setChildTask (line 1363) | public void setChildTask(Task<V> childTask) {
        method getChildTask (line 1367) | public Task<V> getChildTask() {
        method handleChildSuccess (line 1371) | void handleChildSuccess(V result) {
        method handleChildException (line 1375) | void handleChildException(Throwable ex) {
        method init (line 1379) | void init() {
        method tryRetry (line 1384) | public void tryRetry(TaskFailedException ex) {
        method await (line 1408) | @Override
        method shouldRetry (line 1431) | private boolean shouldRetry() {
        method shouldRetryBasedOnPolicy (line 1467) | private boolean shouldRetryBasedOnPolicy() {
        method getNextDelay (line 1493) | private Duration getNextDelay() {
      class CompoundTask (line 1526) | private class CompoundTask<V, U> extends CompletableTask<U> {
        method CompoundTask (line 1530) | CompoundTask(List<Task<V>> subtasks, CompletableFuture<U> future) {
        method await (line 1535) | @Override
        method initSubTasks (line 1541) | private void initSubTasks() {
      class CompletableTask (line 1550) | private class CompletableTask<V> extends Task<V> {
        method CompletableTask (line 1553) | public CompletableTask() {
        method CompletableTask (line 1557) | CompletableTask(CompletableFuture<V> future) {
        method setParentTask (line 1561) | public void setParentTask(Task<V> parentTask) {
        method getParentTask (line 1565) | public Task<V> getParentTask() {
        method await (line 1569) | @Override
        method processNextEvent (line 1597) | private boolean processNextEvent() {
        method thenApply (line 1613) | @Override
        method thenAccept (line 1619) | @Override
        method handleException (line 1625) | protected void handleException(Throwable e) {
        method isDone (line 1641) | @Override
        method complete (line 1646) | public boolean complete(V value) {
        method cancel (line 1660) | private boolean cancel() {
        method completeExceptionally (line 1664) | public boolean completeExceptionally(Throwable ex) {
    type TaskFactory (line 1676) | @FunctionalInterface
      method create (line 1678) | Task<V> create();

FILE: durabletask-client/src/main/java/io/dapr/durabletask/TaskOrchestratorResult.java
  class TaskOrchestratorResult (line 22) | public final class TaskOrchestratorResult {
    method TaskOrchestratorResult (line 40) | public TaskOrchestratorResult(Collection<OrchestratorActions.WorkflowA...
    method getActions (line 48) | public Collection<OrchestratorActions.WorkflowAction> getActions() {
    method getCustomStatus (line 52) | public String getCustomStatus() {
    method getVersion (line 56) | public String getVersion() {
    method getPatches (line 60) | public List<String> getPatches() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/interruption/ContinueAsNewInterruption.java
  class ContinueAsNewInterruption (line 28) | public class ContinueAsNewInterruption extends RuntimeException {
    method ContinueAsNewInterruption (line 29) | public ContinueAsNewInterruption(String message) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/interruption/OrchestratorBlockedException.java
  class OrchestratorBlockedException (line 27) | public final class OrchestratorBlockedException extends RuntimeException {
    method OrchestratorBlockedException (line 28) | public OrchestratorBlockedException(String message) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/orchestration/TaskOrchestrationFactories.java
  class TaskOrchestrationFactories (line 21) | public class TaskOrchestrationFactories {
    method addOrchestration (line 33) | public void addOrchestration(TaskOrchestrationFactory factory) {
    method getOrchestrationFactory (line 76) | public TaskOrchestrationFactory getOrchestrationFactory(String orchest...
    method getOrchestrationFactory (line 92) | public TaskOrchestrationFactory getOrchestrationFactory(String orchest...
    method emptyString (line 117) | private boolean emptyString(String s) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/orchestration/TaskOrchestrationFactory.java
  type TaskOrchestrationFactory (line 21) | public interface TaskOrchestrationFactory {
    method getName (line 27) | String getName();
    method create (line 34) | TaskOrchestration create();
    method getVersionName (line 36) | String getVersionName();
    method isLatestVersion (line 38) | Boolean isLatestVersion();

FILE: durabletask-client/src/main/java/io/dapr/durabletask/orchestration/exception/VersionNotRegisteredException.java
  class VersionNotRegisteredException (line 16) | public class VersionNotRegisteredException extends RuntimeException {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/runner/ActivityRunner.java
  class ActivityRunner (line 38) | public class ActivityRunner extends DurableRunner {
    method ActivityRunner (line 54) | public ActivityRunner(
    method run (line 64) | @Override
    method runWithTracing (line 73) | private void runWithTracing() {
    method runWithoutTracing (line 96) | private void runWithoutTracing() {
    method executeActivity (line 104) | private void executeActivity() throws Throwable {
    method extractTraceContext (line 150) | private Context extractTraceContext() {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/runner/DurableRunner.java
  class DurableRunner (line 26) | public abstract class DurableRunner implements Runnable {
    method DurableRunner (line 40) | public DurableRunner(OrchestratorService.WorkItem workItem,
    method getSidecarAddress (line 48) | protected String getSidecarAddress() {
    method logException (line 52) | protected void logException(StatusRuntimeException e) {

FILE: durabletask-client/src/main/java/io/dapr/durabletask/runner/OrchestratorRunner.java
  class OrchestratorRunner (line 31) | public class OrchestratorRunner extends DurableRunner {
    method OrchestratorRunner (line 45) | public OrchestratorRunner(
    method run (line 56) | @Override

FILE: durabletask-client/src/main/java/io/dapr/durabletask/util/UuidGenerator.java
  class UuidGenerator (line 26) | public class UuidGenerator {
    method generate (line 36) | public static UUID generate(int version, String algorithm, UUID namesp...
    method hasher (line 56) | private static MessageDigest hasher(String algorithm) {

FILE: durabletask-client/src/test/java/io/dapr/durabletask/DurableTaskClientIT.java
  class DurableTaskClientIT (line 59) | @Tag("integration")
    method emptyOrchestration (line 66) | @Test
    method singleTimer (line 89) | @Test
    method loopWithTimer (line 131) | @Test
    method loopWithWaitForEvent (line 180) | @Test
    method longTimer (line 237) | @Test
    method longTimerNonblocking (line 281) | @Test
    method longTimerNonblockingNoExternal (line 319) | @Test
    method longTimeStampTimer (line 356) | @Test
    method singleTimeStampTimer (line 391) | @Test
    method singleTimeStampCreateTimer (line 416) | @Test
    method isReplaying (line 440) | @Test
    method singleActivity (line 476) | @Test
    method currentDateTimeUtc (line 508) | @Test
    method activityChain (line 547) | @Test
    method subOrchestration (line 574) | @Test
    method subOrchestrationWithActivity (line 595) | @Test
    method subOrchestrationChain (line 625) | @Test
    method subOrchestrationFanOut (line 659) | @Test
    method subOrchestrationWithInstanceId (line 699) | @Test
    method continueAsNew (line 727) | @Test
    method continueAsNewWithExternalEvents (line 750) | @Test
    method termination (line 781) | @Test
    method restartOrchestrationWithNewInstanceId (line 804) | @ParameterizedTest
    method restartOrchestrationThrowsException (line 831) | @Test
    method suspendResumeOrchestration (line 853) | @Test
    method terminateSuspendOrchestration (line 894) | @Test
    method activityFanOut (line 921) | @Test
    method externalEvents (line 963) | @Test
    method externalEventsWithTimeouts (line 1002) | @ParameterizedTest
    method setCustomStatus (line 1041) | @Test
    method clearCustomStatus (line 1074) | @Test
    method purgeInstanceId (line 1103) | @Test
    method purgeInstanceFilter (line 1133) | @Test
    method purgeInstanceFilterTimeout (line 1230) | @Test
    method waitForInstanceStartThrowsException (line 1286) | @Test
    method waitForInstanceCompletionThrowsException (line 1313) | @Test
    method activityFanOutWithException (line 1342) | @Test
    method getExceptionMessage (line 1392) | private static String getExceptionMessage(String taskName, int expecte...
    method thenApply (line 1400) | @Test
    method externalEventThenAccept (line 1433) | @Test
    method activityAllOf (line 1467) | @Test
    method activityAllOfException (line 1526) | @Test
    method activityAnyOf (line 1588) | @Test
    method newUUIDTest (line 1637) | @Test
    method taskExecutionIdTest (line 1686) | @Test

FILE: durabletask-client/src/test/java/io/dapr/durabletask/DurableTaskGrpcWorkerReconnectTest.java
  class DurableTaskGrpcWorkerReconnectTest (line 39) | class DurableTaskGrpcWorkerReconnectTest {
    method tearDown (line 45) | @AfterEach
    method workerReconnectsAfterUnavailableError (line 58) | @Test
    method workerReconnectsAfterCancelledError (line 97) | @Test
    method workerReconnectsAfterStreamEndsNormally (line 134) | @Test
    method workerStopsCleanlyOnClose (line 171) | @Test

FILE: durabletask-client/src/test/java/io/dapr/durabletask/DurableTaskGrpcWorkerShutdownTest.java
  class DurableTaskGrpcWorkerShutdownTest (line 29) | public class DurableTaskGrpcWorkerShutdownTest {
    method workerThreadTerminatesPromptlyOnClose (line 36) | @Test
    method startAndBlockExitsOnClose (line 69) | @Test
    method startAndBlockExitsOnInterrupt (line 97) | @Test
    method getWorkerThread (line 120) | private Thread getWorkerThread(DurableTaskGrpcWorker worker) {

FILE: durabletask-client/src/test/java/io/dapr/durabletask/ErrorHandlingIT.java
  class ErrorHandlingIT (line 35) | @Tag("integration")
    method orchestratorException (line 37) | @Test
    method activityException (line 63) | @ParameterizedTest
    method retryActivityFailures (line 115) | @ParameterizedTest
    method retryActivityFailuresWithCustomLogic (line 129) | @ParameterizedTest
    method subOrchestrationException (line 146) | @ParameterizedTest
    method retrySubOrchestratorFailures (line 196) | @ParameterizedTest
    method retrySubOrchestrationFailuresWithCustomLogic (line 211) | @ParameterizedTest
    method getCommonRetryPolicy (line 228) | private static RetryPolicy getCommonRetryPolicy(int maxNumberOfAttempt...
    method getCommonRetryHandler (line 233) | private static RetryHandler getCommonRetryHandler(AtomicInteger handle...
    method retryOnFailuresCoreTest (line 264) | private FailureDetails retryOnFailuresCoreTest(

FILE: durabletask-client/src/test/java/io/dapr/durabletask/IntegrationTestBase.java
  class IntegrationTestBase (line 21) | public class IntegrationTestBase {
    method shutdown (line 27) | @AfterEach
    method createWorkerBuilder (line 35) | protected TestDurableTaskWorkerBuilder createWorkerBuilder() {
    class TestDurableTaskWorkerBuilder (line 39) | public class TestDurableTaskWorkerBuilder {
      method TestDurableTaskWorkerBuilder (line 42) | private TestDurableTaskWorkerBuilder() {
      method buildAndStart (line 46) | public DurableTaskGrpcWorker buildAndStart() {
      method setMaximumTimerInterval (line 53) | public TestDurableTaskWorkerBuilder setMaximumTimerInterval(Duration...
      method addOrchestrator (line 58) | public TestDurableTaskWorkerBuilder addOrchestrator(
      method addActivity (line 85) | public <R> TestDurableTaskWorkerBuilder addActivity(

FILE: durabletask-client/src/test/java/io/dapr/durabletask/SubOrchestrationCrossAppTest.java
  class SubOrchestrationCrossAppTest (line 35) | class SubOrchestrationCrossAppTest {
    method orchestratorStarted (line 43) | private static HistoryEvents.HistoryEvent orchestratorStarted() {
    method executionStarted (line 54) | private static HistoryEvents.HistoryEvent executionStarted(
    method orchestratorCompleted (line 78) | private static HistoryEvents.HistoryEvent orchestratorCompleted() {
    method createExecutor (line 89) | private TaskOrchestrationExecutor createExecutor(String orchestratorNa...
    method callSubOrchestrator_withTargetAppId_setsRouterOnAction (line 120) | @Test
    method callSubOrchestrator_withoutTargetAppId_setsRouterWithSourceOnly (line 170) | @Test
    method callSubOrchestrator_withNullAppId_noRouterSet (line 213) | @Test
    method executionStarted_withRouterTargetAppId_usesTargetAsAppId (line 251) | @Test
    method executionStarted_withRouterSourceOnly_usesSourceAsAppId (line 285) | @Test
    method executionStarted_withNoRouter_appIdIsNull (line 314) | @Test
    method completeOrchestration_withAppId_setsRouterOnCompletionAction (line 344) | @Test
    method completeOrchestration_withNullAppId_noRouterOnCompletionAction (line 382) | @Test
    method completeOrchestration_crossAppSubOrchestrator_routerHasTargetDerivedAppId (line 411) | @Test
    method crossAppSubOrchestration_fullFlow_routersCorrectlySet (line 453) | @Test
    method callSubOrchestrator_withEmptyAppId_noRouterSet (line 503) | @Test
    method callSubOrchestrator_withRetryPolicyAndAppId_setsRouterAndRetries (line 534) | @Test

FILE: durabletask-client/src/test/java/io/dapr/durabletask/TaskOptionsTest.java
  class TaskOptionsTest (line 25) | public class TaskOptionsTest {
    method taskOptionsWithAppID (line 27) | @Test
    method taskOptionsWithRetryPolicyAndAppID (line 37) | @Test
    method taskOptionsWithRetryHandlerAndAppID (line 52) | @Test
    method taskOptionsWithoutAppID (line 72) | @Test
    method taskOptionsWithEmptyAppID (line 80) | @Test
    method taskOptionsWithNullAppID (line 88) | @Test
    method taskOptionsWithRetryPolicy (line 96) | @Test
    method taskOptionsWithRetryHandler (line 107) | @Test
    method taskOptionsWithBuilderChaining (line 123) | @Test

FILE: examples/src/main/java/io/dapr/examples/DaprApplication.java
  class DaprApplication (line 22) | @SpringBootApplication
    method start (line 31) | public static void start(String protocal, int port) {
    method start (line 52) | public static void start(int port) {

FILE: examples/src/main/java/io/dapr/examples/DaprConfig.java
  class DaprConfig (line 21) | @Configuration
    method buildDaprClient (line 26) | @Bean

FILE: examples/src/main/java/io/dapr/examples/DaprMainApplication.java
  class DaprMainApplication (line 22) | public class DaprMainApplication {
    method main (line 27) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/OpenTelemetryConfig.java
  class OpenTelemetryConfig (line 41) | @Configuration
    method initOpenTelemetry (line 49) | @Bean
    method initTracer (line 54) | @Bean
    method createOpenTelemetry (line 63) | public static OpenTelemetrySdk createOpenTelemetry() {
    method getReactorContext (line 98) | public static reactor.util.context.ContextView getReactorContext() {
    method getReactorContext (line 107) | public static reactor.util.context.Context getReactorContext(Context c...
    method isZipkinUp (line 120) | private static boolean isZipkinUp() {

FILE: examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptor.java
  class OpenTelemetryInterceptor (line 32) | @Component
    method keys (line 40) | @Override
    method get (line 45) | @Nullable
    method preHandle (line 52) | @Override
    method postHandle (line 67) | @Override

FILE: examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptorConfig.java
  class OpenTelemetryInterceptorConfig (line 21) | @Component
    method addInterceptors (line 27) | @Override

FILE: examples/src/main/java/io/dapr/examples/actors/DemoActor.java
  type DemoActor (line 23) | @ActorType(name = "DemoActor")
    method registerTimer (line 26) | void registerTimer(String state);
    method registerReminder (line 28) | void registerReminder(int index);
    method say (line 30) | @ActorMethod(name = "echo_message")
    method clock (line 33) | void clock(String message);
    method incrementAndGet (line 35) | @ActorMethod(returns = Integer.class)

FILE: examples/src/main/java/io/dapr/examples/actors/DemoActorClient.java
  class DemoActorClient (line 32) | public class DemoActorClient {
    method main (line 41) | public static void main(String[] args) throws InterruptedException {
    method callActorForever (line 72) | private static final void callActorForever(int index, String actorId, ...

FILE: examples/src/main/java/io/dapr/examples/actors/DemoActorImpl.java
  class DemoActorImpl (line 32) | public class DemoActorImpl extends AbstractActor implements DemoActor, R...
    method DemoActorImpl (line 44) | public DemoActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
    method registerTimer (line 51) | @Override
    method registerReminder (line 65) | @Override
    method say (line 80) | @Override
    method incrementAndGet (line 113) | @Override
    method clock (line 125) | @Override
    method getStateType (line 140) | @Override
    method receiveReminder (line 153) | @Override

FILE: examples/src/main/java/io/dapr/examples/actors/DemoActorService.java
  class DemoActorService (line 34) | public class DemoActorService {
    method main (line 41) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/baggage/BaggageClient.java
  class BaggageClient (line 44) | public class BaggageClient {
    method main (line 52) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/bindings/http/InputBindingController.java
  class InputBindingController (line 24) | @RestController
    method handleInputBinding (line 32) | @PostMapping(path = "/sample123")

FILE: examples/src/main/java/io/dapr/examples/bindings/http/InputBindingExample.java
  class InputBindingExample (line 31) | public class InputBindingExample {
    method main (line 38) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/bindings/http/OutputBindingExample.java
  class OutputBindingExample (line 28) | public class OutputBindingExample {
    class MyClass (line 30) | public static class MyClass {
      method MyClass (line 31) | public MyClass() {
    method main (line 46) | @SuppressWarnings("checkstyle:AbbreviationAsWordInName")

FILE: examples/src/main/java/io/dapr/examples/configuration/ConfigurationClient.java
  class ConfigurationClient (line 31) | public class ConfigurationClient {
    method main (line 42) | public static void main(String[] args) throws Exception {
    method getConfigurations (line 55) | public static void getConfigurations(DaprClient client) {
    method subscribeConfigurationRequest (line 75) | public static void subscribeConfigurationRequest(DaprClient client) {
    method inducingSleepTime (line 91) | private static void inducingSleepTime(int timeInMillis) {
    method print (line 99) | private static void print(ConfigurationItem item, String key) {

FILE: examples/src/main/java/io/dapr/examples/conversation/AssistantMessageDemo.java
  class AssistantMessageDemo (line 36) | public class AssistantMessageDemo {
    method main (line 42) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/conversation/ToolsCallDemo.java
  class ToolsCallDemo (line 34) | public class ToolsCallDemo {
    method main (line 40) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/conversation/UsageUtils.java
  class UsageUtils (line 20) | public class UsageUtils {
    method printUsage (line 21) | static void printUsage(ConversationResultAlpha2 result) {
    method printUsage (line 35) | private static void printUsage(ConversationResultCompletionUsage usage) {
    method printPromptDetails (line 43) | private static void printPromptDetails(ConversationResultCompletionUsa...
    method printCompletionDetails (line 57) | private static void printCompletionDetails(ConversationResultCompletio...

FILE: examples/src/main/java/io/dapr/examples/conversation/UserMessageDemo.java
  class UserMessageDemo (line 29) | public class UserMessageDemo {
    method main (line 35) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/crypto/CryptoExample.java
  class CryptoExample (line 52) | public class CryptoExample {
    method main (line 64) | public static void main(String[] args) throws Exception {
    method generateKeysIfNeeded (line 132) | private static void generateKeysIfNeeded() throws NoSuchAlgorithmExcep...
    method combineChunks (line 163) | private static byte[] combineChunks(java.util.List<byte[]> chunks) {

FILE: examples/src/main/java/io/dapr/examples/crypto/StreamingCryptoExample.java
  class StreamingCryptoExample (line 47) | public class StreamingCryptoExample {
    method main (line 59) | public static void main(String[] args) throws Exception {
    method generateKeysIfNeeded (line 96) | private static void generateKeysIfNeeded() throws NoSuchAlgorithmExcep...
    method demonstrateChunkedEncryption (line 127) | private static void demonstrateChunkedEncryption(DaprPreviewClient cli...
    method demonstrateLargeDataEncryption (line 165) | private static void demonstrateLargeDataEncryption(DaprPreviewClient c...
    method demonstrateCustomCipher (line 201) | private static void demonstrateCustomCipher(DaprPreviewClient client) {
    method collectBytes (line 231) | private static byte[] collectBytes(Flux<byte[]> stream) {

FILE: examples/src/main/java/io/dapr/examples/exception/Client.java
  class Client (line 30) | public class Client {
    method main (line 36) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/invoke/grpc/HelloWorldClient.java
  class HelloWorldClient (line 34) | public class HelloWorldClient {
    method main (line 43) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/invoke/grpc/HelloWorldService.java
  class HelloWorldService (line 42) | public class HelloWorldService {
    class HelloWorldImpl (line 53) | static class HelloWorldImpl extends HelloWorldGrpc.HelloWorldImplBase {
      method sayHello (line 61) | @Override
    method start (line 76) | private void start(int port) throws IOException {
    method stop (line 103) | private void stop() throws InterruptedException {
    method blockUntilShutdown (line 113) | private void blockUntilShutdown() throws InterruptedException {
    method main (line 125) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/invoke/http/DemoService.java
  class DemoService (line 30) | public class DemoService {
    method main (line 37) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/invoke/http/DemoServiceController.java
  class DemoServiceController (line 33) | @RestController
    method handleMethod (line 52) | @PostMapping(path = "/say")

FILE: examples/src/main/java/io/dapr/examples/invoke/http/InvokeClient.java
  class InvokeClient (line 28) | public class InvokeClient {
    method main (line 40) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/jobs/DemoJobsClient.java
  class DemoJobsClient (line 28) | public class DemoJobsClient {
    method main (line 33) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/jobs/DemoJobsSpringApplication.java
  class DemoJobsSpringApplication (line 25) | @SpringBootApplication
    method main (line 28) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/jobs/JobsController.java
  class JobsController (line 25) | @RestController
    method handleJob (line 35) | @PostMapping("/job/{jobName}")

FILE: examples/src/main/java/io/dapr/examples/lock/DistributedLockGrpcClient.java
  class DistributedLockGrpcClient (line 27) | public class DistributedLockGrpcClient {
    method main (line 36) | public static void main(String[] args) throws Exception {
    method tryLock (line 49) | public static void tryLock(DaprPreviewClient client) {
    method unlock (line 65) | public static void unlock(DaprPreviewClient client) {

FILE: examples/src/main/java/io/dapr/examples/pubsub/BulkPublisher.java
  class BulkPublisher (line 41) | public class BulkPublisher {
    method main (line 56) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/CloudEventBulkPublisher.java
  class CloudEventBulkPublisher (line 40) | public class CloudEventBulkPublisher {
    method main (line 55) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/CloudEventPublisher.java
  class CloudEventPublisher (line 36) | public class CloudEventPublisher {
    method main (line 55) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/Publisher.java
  class Publisher (line 31) | public class Publisher {
    method main (line 50) | public static void main(String[] args) throws Exception {
    method getTopicName (line 85) | private static String getTopicName(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/pubsub/PublisherWithTracing.java
  class PublisherWithTracing (line 36) | public class PublisherWithTracing {
    method main (line 53) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/grpc/Subscriber.java
  class Subscriber (line 33) | public class Subscriber {
    method main (line 40) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/grpc/SubscriberGrpcService.java
  class SubscriberGrpcService (line 37) | public class SubscriberGrpcService extends AppCallbackGrpc.AppCallbackIm...
    class MetadataInterceptor (line 42) | public static class MetadataInterceptor implements ServerInterceptor {
      method interceptCall (line 43) | @Override
    method listTopicSubscriptions (line 51) | @Override
    method onTopicEvent (line 70) | @Override
    method onBulkTopicEvent (line 110) | @Override
    method registerConsumer (line 156) | public void registerConsumer(String pubsubName, String topic, boolean ...

FILE: examples/src/main/java/io/dapr/examples/pubsub/http/Subscriber.java
  class Subscriber (line 31) | public class Subscriber {
    method main (line 38) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/pubsub/http/SubscriberController.java
  class SubscriberController (line 37) | @RestController
    method handleMessage (line 49) | @Topic(name = "testingtopic", pubsubName = "${myAppProperty:messagebus}")
    method handleMessageWithErrorHandler (line 69) | @Topic(name = "testingtopic1", pubsubName = "${myAppProperty:messagebu...
    method handleMessageV2 (line 90) | @Topic(name = "testingtopic", pubsubName = "${myAppProperty:messagebus}",
    method handleBulkPublishMessage (line 110) | @Topic(name = "bulkpublishtesting", pubsubName = "${myAppProperty:mess...
    method handleBulkMessage (line 130) | @BulkSubscribe()

FILE: examples/src/main/java/io/dapr/examples/pubsub/stream/Subscriber.java
  class Subscriber (line 34) | public class Subscriber {
    method main (line 45) | public static void main(String[] args) throws Exception {
    method getTopicName (line 62) | private static String getTopicName(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/pubsub/stream/SubscriberCloudEvent.java
  class SubscriberCloudEvent (line 37) | public class SubscriberCloudEvent {
    method main (line 48) | public static void main(String[] args) throws Exception {
    method getTopicName (line 72) | private static String getTopicName(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/querystate/Listing.java
  class Listing (line 20) | public class Listing {
    method Listing (line 34) | public Listing() {
    method getPropertyType (line 37) | public String getPropertyType() {
    method setPropertyType (line 41) | public void setPropertyType(String propertyType) {
    method getId (line 45) | public String getId() {
    method setId (line 49) | public void setId(String id) {
    method getCity (line 53) | public String getCity() {
    method setCity (line 57) | public void setCity(String city) {
    method getState (line 61) | public String getState() {
    method setState (line 65) | public void setState(String state) {
    method toString (line 69) | @Override
    method equals (line 79) | @Override
    method hashCode (line 94) | @Override

FILE: examples/src/main/java/io/dapr/examples/querystate/QuerySavedState.java
  class QuerySavedState (line 41) | public class QuerySavedState {
    method main (line 49) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/secrets/SecretClient.java
  class SecretClient (line 32) | public class SecretClient {
    method main (line 44) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/state/StateClient.java
  class StateClient (line 36) | public class StateClient {
    class MyClass (line 38) | public static class MyClass {
      method toString (line 41) | @Override
    method main (line 57) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/tracing/InvokeClient.java
  class InvokeClient (line 40) | public class InvokeClient {
    method main (line 52) | public static void main(String[] args) throws Exception {
    method injectTraceContext (line 91) | private static void injectTraceContext(HttpRequest.Builder builder) {
    method addDaprApiToken (line 97) | private static void addDaprApiToken(HttpRequest.Builder builder) {

FILE: examples/src/main/java/io/dapr/examples/tracing/TracingDemoMiddleServiceController.java
  class TracingDemoMiddleServiceController (line 37) | @RestController
    method echo (line 51) | @PostMapping(path = "/proxy_echo")
    method sleep (line 71) | @PostMapping(path = "/proxy_sleep")
    method buildInvokeUrl (line 83) | private static String buildInvokeUrl(String method) {
    method injectTraceContext (line 88) | private static void injectTraceContext(HttpRequest.Builder builder, Co...
    method addDaprApiToken (line 94) | private static void addDaprApiToken(HttpRequest.Builder builder) {

FILE: examples/src/main/java/io/dapr/examples/tracing/TracingDemoService.java
  class TracingDemoService (line 38) | public class TracingDemoService {
    method main (line 45) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/tracing/TracingDemoServiceController.java
  class TracingDemoServiceController (line 35) | @RestController
    method handleMethod (line 55) | @PostMapping(path = "/echo")
    method sleep (line 81) | @PostMapping(path = "/sleep")

FILE: examples/src/main/java/io/dapr/examples/tracing/Validation.java
  class Validation (line 35) | final class Validation {
    method validate (line 61) | static void validate() {
    method doValidate (line 69) | private static Void doValidate() throws Exception {
    method readOne (line 104) | private static Object readOne(DocumentContext documentContext, String ...
    method assertCount (line 114) | private static void assertCount(DocumentContext documentContext, Strin...

FILE: examples/src/main/java/io/dapr/examples/unittesting/DaprExampleTest.java
  class DaprExampleTest (line 38) | public class DaprExampleTest {
    type MyActor (line 40) | @ActorType(name = "MyActor")
      method hello (line 42) | String hello();
    class MyApp (line 45) | private static final class MyApp {
      method MyApp (line 56) | public MyApp(DaprClient client, ActorClient actorClient) {
      method MyApp (line 66) | public MyApp(DaprClient client, Function<ActorId, MyActor> actorProx...
      method getState (line 71) | public String getState() {
      method invokeActor (line 75) | public String invokeActor() {
    method testGetState (line 81) | @Test
    method testInvokeActor (line 94) | @Test

FILE: examples/src/main/java/io/dapr/examples/unittesting/DaprWorkflowExampleTest.java
  class DaprWorkflowExampleTest (line 40) | public class DaprWorkflowExampleTest {
    class DemoWorkflow (line 45) | private class DemoWorkflow implements Workflow {
      method create (line 47) | @Override
    method testWorkflow (line 63) | @Test
    method testWorkflowWaitForEventTimeout (line 75) | @Test
    method testWorkflowWaitForEventNoTimeout (line 86) | @Test
    method createMockContext (line 97) | private WorkflowContext createMockContext(String name, String id) {

FILE: examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainClient.java
  class DemoChainClient (line 24) | public class DemoChainClient {
    method main (line 31) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorker.java
  class DemoChainWorker (line 20) | public class DemoChainWorker {
    method main (line 27) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorkflow.java
  class DemoChainWorkflow (line 19) | public class DemoChainWorkflow implements Workflow {
    method create (line 20) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/chain/ToUpperCaseActivity.java
  class ToUpperCaseActivity (line 22) | public class ToUpperCaseActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkerflowClient.java
  class DemoChildWorkerflowClient (line 22) | public class DemoChildWorkerflowClient {
    method main (line 29) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflow.java
  class DemoChildWorkflow (line 24) | public class DemoChildWorkflow implements Workflow {
    method create (line 25) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflowWorker.java
  class DemoChildWorkflowWorker (line 20) | public class DemoChildWorkflowWorker {
    method main (line 27) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoWorkflow.java
  class DemoWorkflow (line 19) | public class DemoWorkflow implements Workflow {
    method create (line 20) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/childworkflow/ReverseActivity.java
  class ReverseActivity (line 21) | public class ReverseActivity implements WorkflowActivity {
    method run (line 22) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookCarActivity.java
  class BookCarActivity (line 23) | public class BookCarActivity implements WorkflowActivity {
    method run (line 26) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookFlightActivity.java
  class BookFlightActivity (line 23) | public class BookFlightActivity implements WorkflowActivity {
    method run (line 26) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookHotelActivity.java
  class BookHotelActivity (line 21) | public class BookHotelActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookTripClient.java
  class BookTripClient (line 24) | public class BookTripClient {
    method main (line 25) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookTripWorker.java
  class BookTripWorker (line 20) | public class BookTripWorker {
    method main (line 22) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/BookTripWorkflow.java
  class BookTripWorkflow (line 27) | public class BookTripWorkflow implements Workflow {
    method create (line 28) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/CancelCarActivity.java
  class CancelCarActivity (line 23) | public class CancelCarActivity implements WorkflowActivity {
    method run (line 26) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/CancelFlightActivity.java
  class CancelFlightActivity (line 23) | public class CancelFlightActivity implements WorkflowActivity {
    method run (line 26) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/compensation/CancelHotelActivity.java
  class CancelHotelActivity (line 23) | public class CancelHotelActivity implements WorkflowActivity {
    method run (line 26) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/continueasnew/CleanUpActivity.java
  class CleanUpActivity (line 23) | public class CleanUpActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewClient.java
  class DemoContinueAsNewClient (line 21) | public class DemoContinueAsNewClient {
    method main (line 28) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorker.java
  class DemoContinueAsNewWorker (line 22) | public class DemoContinueAsNewWorker {
    method main (line 29) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorkflow.java
  class DemoContinueAsNewWorkflow (line 21) | public class DemoContinueAsNewWorkflow implements Workflow {
    method create (line 29) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/externalevent/ApproveActivity.java
  class ApproveActivity (line 23) | public class ApproveActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventClient.java
  class DemoExternalEventClient (line 21) | public class DemoExternalEventClient {
    method main (line 28) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorker.java
  class DemoExternalEventWorker (line 20) | public class DemoExternalEventWorker {
    method main (line 27) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorkflow.java
  class DemoExternalEventWorkflow (line 19) | public class DemoExternalEventWorkflow implements Workflow {
    method create (line 20) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/externalevent/DenyActivity.java
  class DenyActivity (line 23) | public class DenyActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/faninout/CountWordsActivity.java
  class CountWordsActivity (line 23) | public class CountWordsActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutClient.java
  class DemoFanInOutClient (line 26) | public class DemoFanInOutClient {
    method main (line 33) | public static void main(String[] args) throws InterruptedException {

FILE: examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorker.java
  class DemoFanInOutWorker (line 20) | public class DemoFanInOutWorker {
    method main (line 27) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorkflow.java
  class DemoFanInOutWorkflow (line 23) | public class DemoFanInOutWorkflow implements Workflow {
    method create (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/App2TransformActivity.java
  class App2TransformActivity (line 23) | public class App2TransformActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/App2Worker.java
  class App2Worker (line 23) | public class App2Worker {
    method main (line 25) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/App3FinalizeActivity.java
  class App3FinalizeActivity (line 23) | public class App3FinalizeActivity implements WorkflowActivity {
    method run (line 24) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/App3Worker.java
  class App3Worker (line 23) | public class App3Worker {
    method main (line 25) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/MultiAppWorker.java
  class MultiAppWorker (line 19) | public class MultiAppWorker {
    method main (line 21) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/MultiAppWorkflow.java
  class MultiAppWorkflow (line 24) | public class MultiAppWorkflow implements Workflow {
    method create (line 25) | @Override

FILE: examples/src/main/java/io/dapr/examples/workflows/multiapp/MultiAppWorkflowClient.java
  class MultiAppWorkflowClient (line 28) | public class MultiAppWorkflowClient {
    method main (line 30) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/suspendresume/DemoSuspendResumeClient.java
  class DemoSuspendResumeClient (line 25) | public class DemoSuspendResumeClient {
    method main (line 32) | public static void main(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/suspendresume/DemoSuspendResumeWorker.java
  class DemoSuspendResumeWorker (line 23) | public class DemoSuspendResumeWorker {
    method main (line 30) | public static void main(String[] args) throws Exception {

FILE: examples/src/main/java/io/dapr/examples/workflows/utils/PropertyUtils.java
  class PropertyUtils (line 20) | public class PropertyUtils {
    method getProperties (line 22) | public static Properties getProperties(String[] args) {

FILE: examples/src/main/java/io/dapr/examples/workflows/utils/RetryUtils.java
  class RetryUtils (line 19) | public class RetryUtils {
    method callWithRetry (line 22) | public static String callWithRetry(Callable<String> function, Duration...

FILE: sdk-actors/src/main/java/io/dapr/actors/ActorId.java
  class ActorId (line 21) | public class ActorId extends Object implements Comparable<ActorId> {
    method ActorId (line 38) | public ActorId(String id) {
    method toString (line 51) | @Override
    method compareTo (line 67) | @Override
    method hashCode (line 78) | @Override
    method compareContent (line 90) | private int compareContent(ActorId id1, ActorId id2) {
    method equals (line 99) | @Override
    method createRandom (line 121) | public static ActorId createRandom() {
    method hasEqualContent (line 133) | private static boolean hasEqualContent(ActorId id1, ActorId id2) {

FILE: sdk-actors/src/main/java/io/dapr/actors/ActorTrace.java
  class ActorTrace (line 25) | public final class ActorTrace {
    method writeInfo (line 40) | public void writeInfo(String type, String id, String msgFormat, Object...
    method writeWarning (line 52) | public void writeWarning(String type, String id, String msgFormat, Obj...
    method writeError (line 64) | public void writeError(String type, String id, String msgFormat, Objec...
    method write (line 77) | private void write(Level level, String type, String id, String msgForm...
    method emptyIfNul (line 92) | private static String emptyIfNul(String s) {

FILE: sdk-actors/src/main/java/io/dapr/actors/ActorUtils.java
  class ActorUtils (line 16) | public final class ActorUtils {
    method findActorTypeName (line 24) | public static String findActorTypeName(Class<?> actorClass) {

FILE: sdk-actors/src/main/java/io/dapr/actors/Undefined.java
  class Undefined (line 19) | final class Undefined {
    method Undefined (line 21) | private Undefined() {

FILE: sdk-actors/src/main/java/io/dapr/actors/client/ActorClient.java
  class ActorClient (line 32) | public class ActorClient implements AutoCloseable {
    method ActorClient (line 47) | public ActorClient() {
    method ActorClient (line 56) | public ActorClient(ResiliencyOptions resiliencyOptions) {
    method ActorClient (line 65) | public ActorClient(Properties overrideProperties) {
    method ActorClient (line 75) | public ActorClient(Properties overrideProperties, ResiliencyOptions re...
    method ActorClient (line 86) | public ActorClient(Properties overrideProperties, Map<String, String> ...
    method ActorClient (line 101) | private ActorClient(
    method invoke (line 119) | Mono<byte[]> invoke(String actorType, String actorId, String methodNam...
    method close (line 126) | @Override
    method buildDaprClient (line 139) | private static DaprClient buildDaprClient(

FILE: sdk-actors/src/main/java/io/dapr/actors/client/ActorProxy.java
  type ActorProxy (line 23) | public interface ActorProxy {
    method getActorId (line 30) | ActorId getActorId();
    method getActorType (line 37) | String getActorType();
    method invokeMethod (line 47) | <T> Mono<T> invokeMethod(String methodName, TypeRef<T> type);
    method invokeMethod (line 57) | <T> Mono<T> invokeMethod(String methodName, Class<T> clazz);
    method invokeMethod (line 68) | <T> Mono<T> invokeMethod(String methodName, Object data, TypeRef<T> ty...
    method invokeMethod (line 79) | <T> Mono<T> invokeMethod(String methodName, Object data, Class<T> clazz);
    method invokeMethod (line 87) | Mono<Void> invokeMethod(String methodName);
    method invokeMethod (line 96) | Mono<Void> invokeMethod(String methodName, Object data);

FILE: sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyBuilder.java
  class ActorProxyBuilder (line 26) | public class ActorProxyBuilder<T> {
    method ActorProxyBuilder (line 56) | public ActorProxyBuilder(Class<T> actorTypeClass, ActorClient actorCli...
    method ActorProxyBuilder (line 69) | public ActorProxyBuilder(String actorType, Class<T> actorTypeClass, Ac...
    method withObjectSerializer (line 92) | public ActorProxyBuilder<T> withObjectSerializer(DaprObjectSerializer ...
    method build (line 107) | public T build(ActorId actorId) {

FILE: sdk-actors/src/main/java/io/dapr/actors/client/ActorProxyImpl.java
  class ActorProxyImpl (line 30) | class ActorProxyImpl implements ActorProxy, InvocationHandler {
    method ActorProxyImpl (line 62) | ActorProxyImpl(String actorType, ActorId actorId, DaprObjectSerializer...
    method getActorId (line 72) | public ActorId getActorId() {
    method getActorType (line 79) | public String getActorType() {
    method invokeMethod (line 86) | @Override
    method invokeMethod (line 96) | @Override
    method invokeMethod (line 104) | @Override
    method invokeMethod (line 114) | @Override
    method invokeMethod (line 122) | @Override
    method invokeMethod (line 130) | @Override
    method invoke (line 143) | @Override
    method deserialize (line 187) | private <T> T deserialize(final byte[] response, TypeRef<T> type) {
    method serialize (line 203) | private byte[] serialize(final Object request) {

FILE: sdk-actors/src/main/java/io/dapr/actors/client/DaprClient.java
  type DaprClient (line 21) | interface DaprClient {
    method invoke (line 32) | Mono<byte[]> invoke(String actorType, String actorId, String methodNam...

FILE: sdk-actors/src/main/java/io/dapr/actors/client/DaprClientImpl.java
  class DaprClientImpl (line 35) | class DaprClientImpl implements DaprClient {
    method DaprClientImpl (line 65) | DaprClientImpl(
    method invoke (line 81) | @Override
    method createMono (line 98) | private <T> Mono<T> createMono(Consumer<StreamObserver<T>> consumer) {
    method createStreamObserver (line 103) | private <T> StreamObserver<T> createStreamObserver(MonoSink<T> sink) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/AbstractActor.java
  class AbstractActor (line 30) | public abstract class AbstractActor {
    method AbstractActor (line 68) | protected AbstractActor(ActorRuntimeContext runtimeContext, ActorId id) {
    method getId (line 84) | protected ActorId getId() {
    method getType (line 93) | String getType() {
    method getActorStateManager (line 102) | protected ActorStateManager getActorStateManager() {
    method registerReminder (line 116) | protected <T> Mono<Void> registerReminder(
    method registerActorTimer (line 148) | protected <T> Mono<String> registerActorTimer(
    method unregisterTimer (line 183) | protected Mono<Void> unregisterTimer(String timerName) {
    method unregisterReminder (line 196) | protected Mono<Void> unregisterReminder(String reminderName) {
    method onActivate (line 208) | protected Mono<Void> onActivate() {
    method onDeactivate (line 217) | protected Mono<Void> onDeactivate() {
    method onPreActorMethod (line 227) | protected Mono<Void> onPreActorMethod(ActorMethodContext actorMethodCo...
    method onPostActorMethod (line 237) | protected Mono<Void> onPostActorMethod(ActorMethodContext actorMethodC...
    method saveState (line 246) | protected Mono<Void> saveState() {
    method rollback (line 255) | void rollback(boolean force) {
    method resetState (line 267) | void resetState() {
    method onActivateInternal (line 276) | Mono<Void> onActivateInternal() {
    method onDeactivateInternal (line 290) | Mono<Void> onDeactivateInternal() {
    method onPreActorMethodInternal (line 304) | Mono<Void> onPreActorMethodInternal(ActorMethodContext actorMethodCont...
    method onPostActorMethodInternal (line 321) | Mono<Void> onPostActorMethodInternal(ActorMethodContext actorMethodCon...
    method doWriteInfo (line 340) | private Mono<Void> doWriteInfo(String type, String id, String message) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorCallType.java
  type ActorCallType (line 19) | enum ActorCallType {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorFactory.java
  type ActorFactory (line 23) | @FunctionalInterface
    method createActor (line 33) | T createActor(ActorRuntimeContext<T> actorRuntimeContext, ActorId acto...

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorManager.java
  class ActorManager (line 30) | class ActorManager<T extends AbstractActor> {
    method ActorManager (line 57) | ActorManager(ActorRuntimeContext runtimeContext) {
    method activateActor (line 69) | Mono<Void> activateActor(ActorId actorId) {
    method deactivateActor (line 85) | Mono<Void> deactivateActor(ActorId actorId) {
    method invokeReminder (line 97) | Mono<Void> invokeReminder(ActorId actorId, String reminderName, byte[]...
    method invokeTimer (line 122) | Mono<Void> invokeTimer(ActorId actorId, String timerName, byte[] param...
    method onActivatedActor (line 144) | private Mono<Void> onActivatedActor(ActorId actorId, T actor) {
    method doReminderInvokation (line 156) | private Mono<Boolean> doReminderInvokation(
    method invokeMethod (line 196) | Mono<byte[]> invokeMethod(ActorId actorId, String methodName, byte[] r...
    method invokeMethod (line 209) | private Mono<byte[]> invokeMethod(ActorId actorId, ActorMethodContext ...
    method invokeMethod (line 252) | private Mono<Object> invokeMethod(AbstractActor actor, Method method, ...
    method invokeMonoMethod (line 277) | private Mono<Object> invokeMonoMethod(AbstractActor actor, Method meth...
    method invoke (line 299) | private <T> Mono<T> invoke(ActorId actorId, ActorMethodContext context...

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodContext.java
  class ActorMethodContext (line 19) | public class ActorMethodContext {
    method ActorMethodContext (line 37) | private ActorMethodContext(String methodName, ActorCallType callType) {
    method getMethodName (line 47) | public String getMethodName() {
    method getCallType (line 56) | public ActorCallType getCallType() {
    method createForActor (line 66) | static ActorMethodContext createForActor(String methodName) {
    method createForTimer (line 76) | static ActorMethodContext createForTimer(String methodName) {
    method createForReminder (line 86) | static ActorMethodContext createForReminder(String methodName) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorMethodInfoMap.java
  class ActorMethodInfoMap (line 27) | class ActorMethodInfoMap {
    method ActorMethodInfoMap (line 38) | ActorMethodInfoMap(Collection<Class<?>> interfaceTypes) {
    method get (line 68) | Method get(String methodName) throws NoSuchMethodException {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorObjectSerializer.java
  class ActorObjectSerializer (line 31) | public class ActorObjectSerializer extends ObjectSerializer {
    method serialize (line 46) | @Override
    method serialize (line 78) | private byte[] serialize(ActorTimerParams timer) throws IOException {
    method serialize (line 106) | private byte[] serialize(ActorReminderParams reminder) throws IOExcept...
    method serialize (line 137) | private byte[] serialize(ActorRuntimeConfig config) throws IOException {
    method deserialize (line 207) | @Override
    method deserializeActorTimer (line 230) | private ActorTimerParams deserializeActorTimer(byte[] value) throws IO...
    method deserializeActorReminder (line 251) | private ActorReminderParams deserializeActorReminder(byte[] value) thr...
    method extractDurationOrNull (line 279) | private static Duration extractDurationOrNull(JsonNode node, String na...

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorReminderParams.java
  class ActorReminderParams (line 23) | final class ActorReminderParams {
    method ActorReminderParams (line 57) | ActorReminderParams(byte[] data, Duration dueTime, Duration period) {
    method ActorReminderParams (line 72) | ActorReminderParams(byte[] data, Duration dueTime, Duration period, Fa...
    method getDueTime (line 82) | Duration getDueTime() {
    method getPeriod (line 91) | Duration getPeriod() {
    method getData (line 100) | byte[] getData() {
    method validateDueTime (line 110) | private static void validateDueTime(String argName, Duration value) {
    method validatePeriod (line 124) | private static void validatePeriod(String argName, Duration value) thr...
    method getFailurePolicy (line 137) | public FailurePolicy getFailurePolicy() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntime.java
  class ActorRuntime (line 34) | public class ActorRuntime implements Closeable {
    method ActorRuntime (line 81) | private ActorRuntime() throws IllegalStateException {
    method ActorRuntime (line 90) | private ActorRuntime(Properties properties) throws IllegalStateExcepti...
    method ActorRuntime (line 100) | private ActorRuntime(ManagedChannel channel) throws IllegalStateExcept...
    method ActorRuntime (line 111) | private ActorRuntime(ManagedChannel channel, DaprClient daprClient) th...
    method getInstance (line 127) | public static ActorRuntime getInstance() {
    method getInstance (line 145) | public static ActorRuntime getInstance(Properties properties) {
    method getConfig (line 162) | public ActorRuntimeConfig getConfig() {
    method serializeConfig (line 172) | public byte[] serializeConfig() throws IOException {
    method registerActor (line 183) | public <T extends AbstractActor> void registerActor(Class<T> clazz) {
    method registerActor (line 195) | public <T extends AbstractActor> void registerActor(Class<T> clazz, Ac...
    method registerActor (line 207) | public <T extends AbstractActor> void registerActor(
    method registerActor (line 221) | public <T extends AbstractActor> void registerActor(
    method deactivate (line 261) | public Mono<Void> deactivate(String actorTypeName, String actorId) {
    method invoke (line 276) | public Mono<byte[]> invoke(String actorTypeName, String actorId, Strin...
    method invokeReminder (line 292) | public Mono<Void> invokeReminder(String actorTypeName, String actorId,...
    method invokeTimer (line 308) | public Mono<Void> invokeTimer(String actorTypeName, String actorId, St...
    method getActorManager (line 322) | private ActorManager getActorManager(String actorTypeName) {
    method buildDaprClient (line 341) | private static DaprClient buildDaprClient(ManagedChannel channel) {
    method close (line 348) | @Override

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntimeConfig.java
  class ActorRuntimeConfig (line 25) | public class ActorRuntimeConfig {
    method ActorRuntimeConfig (line 44) | ActorRuntimeConfig() {
    method addRegisteredActorType (line 53) | ActorRuntimeConfig addRegisteredActorType(String actorTypeName) {
    method getRegisteredActorTypes (line 67) | Collection<String> getRegisteredActorTypes() {
    method getActorIdleTimeout (line 76) | public Duration getActorIdleTimeout() {
    method setActorIdleTimeout (line 86) | public ActorRuntimeConfig setActorIdleTimeout(Duration actorIdleTimeou...
    method getActorScanInterval (line 96) | public Duration getActorScanInterval() {
    method setActorScanInterval (line 106) | public ActorRuntimeConfig setActorScanInterval(Duration actorScanInter...
    method getDrainOngoingCallTimeout (line 116) | public Duration getDrainOngoingCallTimeout() {
    method setDrainOngoingCallTimeout (line 126) | public ActorRuntimeConfig setDrainOngoingCallTimeout(Duration drainOng...
    method getDrainBalancedActors (line 136) | public Boolean getDrainBalancedActors() {
    method setDrainBalancedActors (line 146) | public ActorRuntimeConfig setDrainBalancedActors(Boolean drainBalanced...
    method getRemindersStoragePartitions (line 156) | public Integer getRemindersStoragePartitions() {
    method setRemindersStoragePartitions (line 166) | public ActorRuntimeConfig setRemindersStoragePartitions(Integer remind...
    method addActorTypeConfig (line 177) | ActorRuntimeConfig addActorTypeConfig(ActorTypeConfig config) {
    method getActorTypeConfigs (line 191) | Collection<ActorTypeConfig> getActorTypeConfigs() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorRuntimeContext.java
  class ActorRuntimeContext (line 24) | public class ActorRuntimeContext<T extends AbstractActor> {
    method ActorRuntimeContext (line 71) | ActorRuntimeContext(ActorRuntime actorRuntime,
    method getActorRuntime (line 91) | ActorRuntime getActorRuntime() {
    method getObjectSerializer (line 100) | DaprObjectSerializer getObjectSerializer() {
    method getActorFactory (line 109) | ActorFactory<T> getActorFactory() {
    method getActorTypeInformation (line 118) | ActorTypeInformation<T> getActorTypeInformation() {
    method getActorTrace (line 127) | ActorTrace getActorTrace() {
    method getDaprClient (line 136) | DaprClient getDaprClient() {
    method getStateProvider (line 145) | DaprStateAsyncProvider getStateProvider() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChange.java
  class ActorStateChange (line 19) | public final class ActorStateChange {
    method ActorStateChange (line 43) | ActorStateChange(String stateName, Object value, ActorStateChangeKind ...
    method getStateName (line 54) | String getStateName() {
    method getValue (line 63) | Object getValue() {
    method getChangeKind (line 72) | ActorStateChangeKind getChangeKind() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateChangeKind.java
  type ActorStateChangeKind (line 19) | public enum ActorStateChangeKind {
    method ActorStateChangeKind (line 51) | ActorStateChangeKind(String daprStateChangeOperation) {
    method getDaprStateChangeOperation (line 60) | String getDaprStateChangeOperation() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateManager.java
  class ActorStateManager (line 30) | public class ActorStateManager {
    method ActorStateManager (line 59) | ActorStateManager(DaprStateAsyncProvider stateProvider, String actorTy...
    method add (line 74) | public <T> Mono<Void> add(String stateName, T value) {
    method get (line 112) | public <T> Mono<T> get(String stateName, Class<T> clazz) {
    method get (line 124) | public <T> Mono<T> get(String stateName, TypeRef<T> type) {
    method set (line 158) | public <T> Mono<Void> set(String stateName, T value) {
    method remove (line 193) | public Mono<Void> remove(String stateName) {
    method contains (line 233) | public Mono<Boolean> contains(String stateName) {
    method save (line 255) | public Mono<Void> save() {
    method clear (line 278) | public void clear() {
    method flush (line 285) | private void flush() {
    class StateChangeMetadata (line 300) | private static final class StateChangeMetadata {
      method StateChangeMetadata (line 318) | private StateChangeMetadata(ActorStateChangeKind kind, Object value) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorStateOperation.java
  class ActorStateOperation (line 20) | final class ActorStateOperation {
    method ActorStateOperation (line 44) | ActorStateOperation(String operationType,
    method getOperationType (line 57) | public String getOperationType() {
    method getKey (line 66) | public String getKey() {
    method getValue (line 75) | public Object getValue() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTimerParams.java
  class ActorTimerParams (line 22) | final class ActorTimerParams {
    method ActorTimerParams (line 52) | ActorTimerParams(String callback,
    method getCallback (line 67) | public String getCallback() {
    method getDueTime (line 76) | public Duration getDueTime() {
    method getPeriod (line 85) | public Duration getPeriod() {
    method getData (line 94) | public byte[] getData() {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeConfig.java
  class ActorTypeConfig (line 21) | public class ActorTypeConfig {
    method ActorTypeConfig (line 38) | ActorTypeConfig() {
    method setActorTypeName (line 47) | ActorTypeConfig setActorTypeName(String actorTypeName) {
    method getActorTypeName (line 61) | String getActorTypeName() {
    method getActorIdleTimeout (line 70) | public Duration getActorIdleTimeout() {
    method setActorIdleTimeout (line 80) | public ActorTypeConfig setActorIdleTimeout(Duration actorIdleTimeout) {
    method getActorScanInterval (line 90) | public Duration getActorScanInterval() {
    method setActorScanInterval (line 100) | public ActorTypeConfig setActorScanInterval(Duration actorScanInterval) {
    method getDrainOngoingCallTimeout (line 110) | public Duration getDrainOngoingCallTimeout() {
    method setDrainOngoingCallTimeout (line 120) | public ActorTypeConfig setDrainOngoingCallTimeout(Duration drainOngoin...
    method getDrainBalancedActors (line 130) | public Boolean getDrainBalancedActors() {
    method setDrainBalancedActors (line 140) | public ActorTypeConfig setDrainBalancedActors(Boolean drainBalancedAct...
    method getRemindersStoragePartitions (line 150) | public Integer getRemindersStoragePartitions() {
    method setRemindersStoragePartitions (line 160) | public ActorTypeConfig setRemindersStoragePartitions(Integer reminders...

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeInformation.java
  class ActorTypeInformation (line 26) | final class ActorTypeInformation<T> {
    method ActorTypeInformation (line 62) | private ActorTypeInformation(String name,
    method getName (line 79) | public String getName() {
    method getImplementationClass (line 88) | public Class<T> getImplementationClass() {
    method getInterfaces (line 97) | public Collection<Class<?>> getInterfaces() {
    method isAbstractClass (line 106) | public boolean isAbstractClass() {
    method isRemindable (line 116) | public boolean isRemindable() {
    method tryCreate (line 127) | public static <T> ActorTypeInformation<T> tryCreate(Class<T> actorClas...
    method create (line 142) | public static <T> ActorTypeInformation<T> create(Class<T> actorClass) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/ActorTypeUtilities.java
  class ActorTypeUtilities (line 21) | final class ActorTypeUtilities {
    method isActor (line 29) | public static boolean isActor(Class clazz) {
    method isRemindableActor (line 43) | public static boolean isRemindableActor(Class clazz) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/DaprClient.java
  type DaprClient (line 23) | interface DaprClient {
    method getState (line 33) | Mono<byte[]> getState(String actorType, String actorId, String keyName);
    method saveStateTransactionally (line 43) | Mono<Void> saveStateTransactionally(String actorType, String actorId, ...
    method registerReminder (line 54) | Mono<Void> registerReminder(
    method unregisterReminder (line 68) | Mono<Void> unregisterReminder(String actorType, String actorId, String...
    method registerTimer (line 79) | Mono<Void> registerTimer(String actorType, String actorId, String time...
    method unregisterTimer (line 89) | Mono<Void> unregisterTimer(String actorType, String actorId, String ti...

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/DaprClientImpl.java
  class DaprClientImpl (line 41) | class DaprClientImpl implements DaprClient {
    method DaprClientImpl (line 65) | DaprClientImpl(ManagedChannel channel) {
    method DaprClientImpl (line 74) | DaprClientImpl(DaprGrpc.DaprStub daprStubClient) {
    method getState (line 81) | @Override
    method saveStateTransactionally (line 97) | @Override
    method registerReminder (line 144) | @Override
    method unregisterReminder (line 171) | @Override
    method registerTimer (line 186) | @Override
    method unregisterTimer (line 209) | @Override
    method createStreamObserver (line 221) | private <T> StreamObserver<T> createStreamObserver(MonoSink<T> sink) {

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/DaprStateAsyncProvider.java
  class DaprStateAsyncProvider (line 31) | class DaprStateAsyncProvider {
    method DaprStateAsyncProvider (line 64) | DaprStateAsyncProvider(DaprClient daprClient, DaprObjectSerializer sta...
    method load (line 70) | <T> Mono<T> load(String actorType, ActorId actorId, String stateName, ...
    method contains (line 98) | Mono<Boolean> contains(String actorType, ActorId actorId, String state...
    method apply (line 126) | Mono<Void> apply(String actorType, ActorId actorId, ActorStateChange.....

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/DefaultActorFactory.java
  class DefaultActorFactory (line 26) | class DefaultActorFactory<T extends AbstractActor> implements ActorFacto...
    method createActor (line 36) | @Override

FILE: sdk-actors/src/main/java/io/dapr/actors/runtime/Remindable.java
  type Remindable (line 24) | public interface Remindable<T> {
    method getStateType (line 31) | TypeRef<T> getStateType();
    method receiveReminder (line 45) | Mono<Void> receiveReminder(String reminderName, T state, Duration dueT...

FILE: sdk-actors/src/test/java/io/dapr/actors/ActorIdTest.java
  class ActorIdTest (line 27) | public class ActorIdTest {
    method initializeNewActorIdObjectWithNullId (line 29) | @Test
    method getId (line 34) | @Test
    method verifyToString (line 41) | @Test
    method verifyEqualsByObject (line 48) | @Test
    method verifyEqualsByActorId (line 56) | @Test
    method verifyCompareTo (line 66) | @Test
    method createEqualsTestValues (line 76) | private List<Wrapper> createEqualsTestValues() {
    method createComparesToTestValues (line 86) | private List<Wrapper> createComparesToTestValues() {
    class Wrapper (line 96) | class Wrapper<T> {
      method Wrapper (line 102) | public Wrapper(Object i, Object j, T e) {

FILE: sdk-actors/src/test/java/io/dapr/actors/TestUtils.java
  class TestUtils (line 21) | public final class TestUtils {
    method TestUtils (line 23) | private TestUtils() {}
    method assertThrowsDaprException (line 25) | public static <T extends Throwable> void assertThrowsDaprException(Cla...
    method assertThrowsDaprException (line 31) | public static void assertThrowsDaprException(String expectedErrorCode,...
    method assertThrowsDaprException (line 37) | public static void assertThrowsDaprException(
    method assertThrowsDaprException (line 47) | public static <T extends Throwable> void assertThrowsDaprException(
    method formatIpAddress (line 59) | public static String formatIpAddress(final String ipAddress) {

FILE: sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyBuilderTest.java
  class ActorProxyBuilderTest (line 25) | public class ActorProxyBuilderTest {
    method initClass (line 29) | @BeforeAll
    method tearDownClass (line 34) | @AfterAll
    method buildWithNullActorId (line 39) | @Test
    method buildWithEmptyActorType (line 45) | @Test
    method buildWithNullActorType (line 50) | @Test
    method buildWithNullSerializer (line 55) | @Test
    method buildWithNullClient (line 62) | @Test
    method build (line 67) | @Test()
    method buildWithType (line 77) | @Test()
    method buildWithTypeDefaultName (line 85) | @Test()
    type MyActor (line 93) | @ActorType(name = "MyActor")
    type ActorWithDefaultName (line 97) | public interface ActorWithDefaultName {

FILE: sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyImplForTests.java
  class ActorProxyImplForTests (line 19) | public class ActorProxyImplForTests extends ActorProxyImpl {
    method ActorProxyImplForTests (line 21) | public ActorProxyImplForTests(String actorType, ActorId actorId, DaprO...

FILE: sdk-actors/src/test/java/io/dapr/actors/client/ActorProxyImplTest.java
  class ActorProxyImplTest (line 31) | public class ActorProxyImplTest {
    method constructorActorProxyTest (line 33) | @Test()
    method invokeActorMethodWithoutDataWithReturnType (line 46) | @Test()
    method invokeActorMethodWithoutDataWithReturnTypeViaReflection (line 68) | @Test()
    method invokeActorMethodWithoutDataWithReturnMonoTypeViaReflection (line 89) | @Test()
    method invokeActorMethodWithDataWithReturnTypeViaReflection (line 112) | @Test()
    method invokeActorMethodWithDataWithReturnMonoTypeViaReflection (line 135) | @Test()
    method invokeActorMethodWithoutDataWithoutReturnTypeViaReflection (line 159) | @Test()
    method invokeActorMethodWithoutDataWithoutReturnTypeMonoViaReflection (line 177) | @Test()
    method invokeActorMethodWithDataWithoutReturnTypeMonoViaReflection (line 196) | @Test()
    method invokeActorMethodWithTooManyArgsViaReflection (line 219) | @Test
    method invokeActorMethodWithDataWithoutReturnTypeViaReflection (line 235) | @Test()
    method invokeActorMethodWithoutDataWithEmptyReturnType (line 257) | @Test()
    method invokeActorMethodWithIncorrectReturnType (line 274) | @Test
    method invokeActorMethodSavingDataWithReturnType (line 291) | @Test()
    method invokeActorMethodSavingDataWithIncorrectReturnType (line 316) | @Test
    method invokeActorMethodSavingDataWithEmptyReturnType (line 337) | @Test()
    method invokeActorMethodSavingDataWithIncorrectInputType (line 359) | @Test
    method invokeActorMethodWithDataWithVoidReturnType (line 379) | @Test()
    method invokeActorMethodWithDataWithVoidIncorrectInputType (line 401) | @Test
    method invokeActorMethodWithoutDataWithVoidReturnType (line 421) | @Test()
    type Actor (line 438) | interface Actor {
      method getData (line 439) | MyData getData();
      method echo (line 441) | String echo(String message);
      method getDataMono (line 443) | @ActorMethod(returns = MyData.class)
      method echoMono (line 446) | @ActorMethod(returns = String.class)
      method doSomething (line 449) | void doSomething();
      method doSomethingMono (line 451) | Mono<Void> doSomethingMono();
      method process (line 453) | void process(String something);
      method doSomethingMonoWithArg (line 455) | Mono<Void> doSomethingMonoWithArg(String something);
      method tooManyArgs (line 457) | void tooManyArgs(String something, String something2);
    class MyData (line 460) | static class MyData {
      method getPropertyB (line 471) | public String getPropertyB() {
      method setPropertyB (line 475) | public void setPropertyB(String propertyB) {
      method getPropertyA (line 479) | public String getPropertyA() {
      method setPropertyA (line 483) | public void setPropertyA(String propertyA) {
      method toString (line 487) | @Override
      method getMyData (line 495) | public MyData getMyData() {
      method setMyData (line 499) | public void setMyData(MyData myData) {

FILE: sdk-actors/src/test/java/io/dapr/actors/client/DaprClientStub.java
  class DaprClientStub (line 18) | public class DaprClientStub extends ActorClient implements DaprClient {
    method invoke (line 20) | @Override

FILE: sdk-actors/src/test/java/io/dapr/actors/client/DaprGrpcClientTest.java
  class DaprGrpcClientTest (line 40) | public class DaprGrpcClientTest {
    method invokeActor (line 62) | @Override
    method setup (line 95) | @BeforeEach
    method invoke (line 112) | @Test
    method invokeNullPayload (line 118) | @Test
    method invokeException (line 124) | @Test
    method invokeNotHotMono (line 135) | @Test

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorCustomSerializerTest.java
  class ActorCustomSerializerTest (line 34) | public class ActorCustomSerializerTest {
    type MyActor (line 46) | public interface MyActor {
      method intInIntOut (line 47) | Mono<Integer> intInIntOut(int input);
      method stringInStringOut (line 49) | Mono<String> stringInStringOut(String input);
      method classInClassOut (line 51) | Mono<MyData> classInClassOut(MyData input);
    class ActorImpl (line 54) | @ActorType(name = "MyActor")
      method ActorImpl (line 58) | public ActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
      method intInIntOut (line 62) | @Override
      method stringInStringOut (line 67) | @Override
      method classInClassOut (line 72) | @Override
    class MyData (line 81) | static class MyData implements Serializable {
      method MyData (line 85) | public MyData() {
      method MyData (line 90) | public MyData(String name, int num) {
      method getName (line 95) | public String getName() {
      method getNum (line 99) | public int getNum() {
    method classInClassOut (line 104) | @Test
    method stringInStringOut (line 115) | @Test
    method intInIntOut (line 123) | @Test
    method newActorId (line 131) | private static ActorId newActorId() {
    method createActorProxy (line 135) | private ActorProxy createActorProxy() {
    method createContext (line 161) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorManagerTest.java
  class ActorManagerTest (line 36) | public class ActorManagerTest {
    type MyActor (line 42) | interface MyActor {
      method say (line 43) | String say(String something);
      method getCount (line 45) | int getCount();
      method incrementCount (line 47) | void incrementCount(int delta);
      method throwsException (line 49) | void throwsException();
      method throwsExceptionHotMono (line 51) | Mono<Void> throwsExceptionHotMono();
      method throwsExceptionMono (line 53) | Mono<Void> throwsExceptionMono();
    class NotRemindableActor (line 56) | public static class NotRemindableActor extends AbstractActor {
      method NotRemindableActor (line 57) | public NotRemindableActor(ActorRuntimeContext runtimeContext, ActorI...
    class MyActorImpl (line 62) | @ActorType(name = "MyActor")
      method say (line 67) | @Override
      method getCount (line 72) | @Override
      method incrementCount (line 77) | @Override
      method throwsException (line 82) | @Override
      method throwsExceptionHotMono (line 87) | @Override
      method throwsExceptionMono (line 92) | @Override
      method MyActorImpl (line 97) | public MyActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
      method getStateType (line 108) | @Override
      method receiveReminder (line 113) | @Override
    method invokeBeforeActivate (line 123) | @Test
    method activateThenInvoke (line 132) | @Test
    method activateThenInvokeWithActorImplException (line 143) | @Test
    method activateThenInvokeWithActorImplExceptionButNotSubscribed (line 153) | @Test
    method activateThenInvokeWithActorImplHotMonoException (line 162) | @Test
    method activateThenInvokeWithActorImplHotMonoExceptionNotSubscribed (line 172) | @Test
    method activateThenInvokeWithActorImplMonoException (line 181) | @Test
    method activateThenInvokeWithActorImplMonoExceptionNotSubscribed (line 191) | @Test
    method activateInvokeDeactivateThenInvoke (line 200) | @Test
    method invokeReminderNotRemindable (line 215) | @Test
    method invokeReminderBeforeActivate (line 223) | @Test
    method activateThenInvokeReminder (line 230) | @Test
    method activateDeactivateThenInvokeReminder (line 237) | @Test
    method invokeTimerBeforeActivate (line 246) | @Test
    method activateThenInvokeTimerBeforeRegister (line 254) | @Test
    method activateThenInvokeTimer (line 261) | @Test
    method activateInvokeTimerDeactivateThenInvokeTimer (line 270) | @Test
    method createReminderParams (line 282) | private byte[] createReminderParams(String data) throws IOException {
    method createTimerParams (line 288) | private byte[] createTimerParams(String callback, Object data) throws ...
    method newActorId (line 294) | private static ActorId newActorId() {
    method executeSayMethod (line 298) | private static String executeSayMethod(String something) {
    method createContext (line 302) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorMethodInfoMapTest.java
  class ActorMethodInfoMapTest (line 28) | public class ActorMethodInfoMapTest {
    method normalUsage (line 30) | @Test
    method lookUpNonExistingMethod (line 48) | @Test
    type TestActor (line 61) | public interface TestActor {
      method getData (line 62) | String getData(String key);

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorNoStateTest.java
  class ActorNoStateTest (line 37) | public class ActorNoStateTest {
    type MyActor (line 46) | public interface MyActor {
      method getMyId (line 49) | Mono<String> getMyId();
      method stringInStringOut (line 50) | Mono<String> stringInStringOut(String input);
      method stringInBooleanOut (line 51) | Mono<Boolean> stringInBooleanOut(String input);
      method stringInVoidOutIntentionallyThrows (line 52) | Mono<Void> stringInVoidOutIntentionallyThrows(String input);
      method classInClassOut (line 53) | Mono<MyData> classInClassOut(MyData input);
      method registerBadCallbackName (line 54) | Mono<String> registerBadCallbackName();
      method registerTimerAutoName (line 55) | String registerTimerAutoName();
      method dotNetMethod (line 56) | @ActorMethod(name = "DotNetMethodASync")
    class ActorImpl (line 60) | @ActorType(name = "MyActor")
      method ActorImpl (line 66) | public ActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
      method getMyId (line 72) | @Override
      method stringInStringOut (line 77) | @Override
      method stringInBooleanOut (line 85) | @Override
      method stringInVoidOutIntentionallyThrows (line 96) | @Override
      method classInClassOut (line 105) | @Override
      method registerBadCallbackName (line 114) | @Override
      method registerTimerAutoName (line 119) | @Override
      method dotNetMethod (line 124) | @Override
    class MyData (line 130) | static class MyData {
      method MyData (line 134) | public MyData() {
      method MyData (line 139) | public MyData(String name, int num) {
      method getName (line 144) | public String getName() {
      method getNum (line 148) | public int getNum() {
    method actorId (line 153) | @Test
    method stringInStringOut (line 162) | @Test
    method stringInBooleanOut (line 172) | @Test
    method stringInVoidOutIntentionallyThrows (line 186) | @Test
    method testMethodNameChange (line 195) | @Test
    method classInClassOut (line 201) | @Test
    method testBadTimerCallbackName (line 217) | @Test
    method testAutoTimerName (line 224) | @Test
    method newActorId (line 236) | private static ActorId newActorId() {
    method createActorProxy (line 240) | private ActorProxy createActorProxy() {
    method createActorProxy (line 266) | private <T> T createActorProxy(Class<T> clazz) {
    method createContext (line 296) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorReminderParamsTest.java
  class ActorReminderParamsTest (line 25) | public class ActorReminderParamsTest {
    method outOfRangeDueTime (line 29) | @Test
    method negativePeriod (line 34) | @Test
    method outOfRangePeriod (line 40) | @Test
    method noState (line 45) | @Test
    method withState (line 63) | @Test
    method withDropFailurePolicy (line 81) | @Test
    method withConstantRetryFailurePolicy (line 102) | @Test
    method withConstantIntervalFailurePolicy (line 124) | @Test

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorRuntimeTest.java
  class ActorRuntimeTest (line 33) | public class ActorRuntimeTest {
    type MyActor (line 37) | public interface MyActor {
      method say (line 38) | String say();
      method count (line 40) | int count();
    class MyActorImpl (line 43) | @ActorType(name = ACTOR_NAME)
      method MyActorImpl (line 50) | public MyActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
      method onActivate (line 54) | public Mono<Void> onActivate() {
      method onDeactivate (line 64) | public Mono<Void> onDeactivate() {
      method say (line 82) | public String say() {
      method count (line 91) | public int count() {
    method beforeAll (line 104) | @BeforeAll
    method setup (line 114) | @BeforeEach
    method registerActorNullClass (line 120) | @Test
    method registerActorNullFactory (line 125) | @Test
    method registerActorNullSerializer (line 131) | @Test
    method registerActorNullStateSerializer (line 137) | @Test
    method setActorIdleTimeout (line 143) | @Test
    method setActorScanInterval (line 150) | @Test
    method setDrainBalancedActors (line 157) | @Test
    method addActorTypeConfig (line 164) | @Test
    method addNullActorTypeConfig (line 192) | @Test
    method setDrainOngoingCallTimeout (line 208) | @Test
    method setRemindersStoragePartitions (line 215) | @Test
    method invokeActor (line 222) | @Test
    method invokeUnknownActor (line 232) | @Test
    method deactivateActor (line 240) | @Test
    method lazyDeactivate (line 247) | @Test
    method lazyInvoke (line 263) | @Test

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorStatefulTest.java
  class ActorStatefulTest (line 42) | public class ActorStatefulTest {
    type MyActor (line 54) | public interface MyActor {
      method isActive (line 55) | Mono<Boolean> isActive();
      method getPreCallMethodContext (line 57) | MyMethodContext getPreCallMethodContext();
      method getPostCallMethodContext (line 59) | MyMethodContext getPostCallMethodContext();
      method unregisterTimerAndReminder (line 61) | Mono<Void> unregisterTimerAndReminder();
      method incrementAndGetCount (line 63) | Mono<Integer> incrementAndGetCount(int increment) throws Exception;
      method getCountButThrowsException (line 65) | Mono<Integer> getCountButThrowsException();
      method addMessage (line 67) | Mono<Void> addMessage(String message);
      method setMessage (line 69) | Mono<String> setMessage(String message);
      method getMessage (line 71) | Mono<String> getMessage();
      method hasMessage (line 73) | Mono<Boolean> hasMessage();
      method deleteMessage (line 75) | Mono<Void> deleteMessage();
      method forceDuplicateException (line 77) | Mono<Void> forceDuplicateException();
      method forcePartialChange (line 79) | Mono<Void> forcePartialChange();
      method throwsWithoutSaving (line 81) | Mono<Void> throwsWithoutSaving();
      method setMethodContext (line 83) | Mono<Void> setMethodContext(MyMethodContext context);
      method getMethodContext (line 85) | Mono<MyMethodContext> getMethodContext();
      method getIdString (line 87) | String getIdString();
    class MyActorImpl (line 90) | @ActorType(name = "MyActor")
      method MyActorImpl (line 101) | public MyActorImpl(ActorRuntimeContext runtimeContext, ActorId id) {
      method isActive (line 107) | @Override
      method onActivate (line 112) | @Override
      method onDeactivate (line 130) | @Override
      method onPreActorMethod (line 135) | @Override
      method onPostActorMethod (line 145) | @Override
      method getPreCallMethodContext (line 155) | @Override
      method getPostCallMethodContext (line 160) | @Override
      method unregisterTimerAndReminder (line 165) | @Override
      method incrementAndGetCount (line 173) | @Override
      method getCountButThrowsException (line 193) | @Override
      method addMessage (line 198) | @Override
      method setMessage (line 203) | @Override
      method getMessage (line 208) | @Override
      method hasMessage (line 213) | @Override
      method deleteMessage (line 218) | @Override
      method forceDuplicateException (line 223) | @Override
      method forcePartialChange (line 230) | @Override
      method throwsWithoutSaving (line 237) | @Override
      method setMethodContext (line 243) | @Override
      method getMethodContext (line 248) | @Override
      method getIdString (line 254) | @Override
      method getStateType (line 259) | @Override
      method receiveReminder (line 265) | @Override
    class MyMethodContext (line 272) | public static class MyMethodContext implements Serializable {
      method getType (line 278) | public String getType() {
      method setType (line 282) | public MyMethodContext setType(String type) {
      method getName (line 287) | public String getName() {
      method setName (line 291) | public MyMethodContext setName(String name) {
    method happyGetSetDeleteContains (line 297) | @Test
    method lazyGet (line 318) | @Test
    method lazySet (line 333) | @Test
    method lazyContains (line 350) | @Test
    method lazyDelete (line 368) | @Test
    method lazyAdd (line 390) | @Test
    method onActivateAndOnDeactivate (line 418) | @Test
    method onPreMethodAndOnPostMethod (line 432) | @Test
    method invokeTimer (line 449) | @Test
    method invokeTimerAfterDeactivate (line 466) | @Test
    method invokeTimerAfterUnregister (line 476) | @Test
    method invokeUnknownTimer (line 486) | @Test
    method invokeReminder (line 494) | @Test
    method invokeReminderAfterDeactivate (line 513) | @Test
    method classTypeRequestResponseInStateStore (line 524) | @Test
    method intTypeRequestResponseInStateStore (line 537) | @Test
    method intTypeWithMethodException (line 545) | @Test
    method intTypeWithRuntimeException (line 553) | @Test
    method actorRuntimeException (line 561) | @Test
    method actorMethodException (line 571) | @Test
    method rollbackChanges (line 582) | @Test
    method partialChanges (line 597) | @Test
    method newActorProxy (line 616) | private ActorProxy newActorProxy() {
    method createReminderParams (line 642) | private byte[] createReminderParams(String data) throws IOException {
    method newActorId (line 648) | private static ActorId newActorId() {
    method executeSayMethod (line 652) | private static String executeSayMethod(String something) {
    method createContext (line 656) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTimerTest.java
  class ActorTimerTest (line 23) | public class ActorTimerTest {
    method serialize (line 27) | @Test
    method serializeWithOneTimePeriod (line 49) | @Test

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTypeInformationTest.java
  class ActorTypeInformationTest (line 27) | public class ActorTypeInformationTest {
    type MyActorAnnotated (line 32) | @ActorType(name = "MyActorWithAnnotation")
    type MyActor (line 39) | private interface MyActor {
    method notRemindable (line 45) | @Test
    method remindable (line 67) | @Test
    method renamedWithAnnotation (line 100) | @Test
    method renamedWithAnnotationAtInterface (line 122) | @Test
    method nonActorParentClass (line 143) | @Test

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ActorTypeUtilitiesTest.java
  class ActorTypeUtilitiesTest (line 26) | public class ActorTypeUtilitiesTest {
    method nullIsNotRemindable (line 28) | @Test
    method nonActorIsNotRemindable (line 33) | @Test
    method actorButNotRemindable (line 38) | @Test
    method actorWithInterfacesButNotRemindable (line 43) | @Test
    method actorIsRemindable (line 48) | @Test
    class NonRemindable (line 53) | public static class NonRemindable extends AbstractActor {
      method NonRemindable (line 55) | protected NonRemindable(ActorRuntimeContext runtimeContext, ActorId ...
    class NonRemindableWithInterfaces (line 60) | public static class NonRemindableWithInterfaces extends AbstractActor ...
      method NonRemindableWithInterfaces (line 62) | protected NonRemindableWithInterfaces(ActorRuntimeContext runtimeCon...
      method close (line 66) | @Override
    class Remindable (line 71) | public static class Remindable extends AbstractActor implements io.dap...
      method Remindable (line 73) | protected Remindable(ActorRuntimeContext runtimeContext, ActorId id) {
      method getStateType (line 77) | @Override
      method receiveReminder (line 82) | @Override

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/DaprGrpcClientTest.java
  class DaprGrpcClientTest (line 46) | public class DaprGrpcClientTest {
    method setup (line 75) | @BeforeEach
    method getActorStateException (line 92) | @Test
    method getActorState (line 102) | @Test
    method saveActorStateTransactionallyException (line 108) | @Test
    method saveActorStateTransactionally (line 117) | @Test
    method saveActorStateTransactionallyByteArray (line 123) | @Test
    method saveActorStateTransactionallyInvalidValueType (line 129) | @Test
    method registerActorReminder (line 141) | @Test
    method unregisterActorReminder (line 152) | @Test
    method registerActorTimer (line 159) | @Test
    method unregisterActorTimer (line 173) | @Test
    class OperationsMatcher (line 180) | private static class OperationsMatcher {
      method OperationsMatcher (line 184) | OperationsMatcher(List<ActorStateOperation> operations) {
      method nullableEquals (line 188) | private static boolean nullableEquals(Object one, Any another) {
      method getAny (line 206) | private static Any getAny(Object value) throws IOException {
      method matches (line 217) | public boolean matches(DaprActorsProtos.ExecuteActorStateTransaction...
    class CustomDaprClient (line 246) | private class CustomDaprClient extends DaprGrpc.DaprImplBase {
      method getActorState (line 248) | @Override
      method executeActorStateTransaction (line 267) | public void executeActorStateTransaction(DaprActorsProtos.ExecuteAct...
      method registerActorReminder (line 284) | @Override
      method registerActorTimer (line 304) | public void registerActorTimer(DaprActorsProtos.RegisterActorTimerRe...
      method unregisterActorTimer (line 329) | public void unregisterActorTimer(DaprActorsProtos.UnregisterActorTim...
      method unregisterActorReminder (line 346) | public void unregisterActorReminder(DaprActorsProtos.UnregisterActor...
      method throwException (line 363) | private void throwException(StreamObserver<?> responseObserver) {
      method populateObserver (line 369) | private <T extends com.google.protobuf.Message> void populateObserve...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/DaprInMemoryStateProvider.java
  class DaprInMemoryStateProvider (line 28) | public class DaprInMemoryStateProvider extends DaprStateAsyncProvider {
    method DaprInMemoryStateProvider (line 34) | DaprInMemoryStateProvider(DaprObjectSerializer serializer) {
    method load (line 39) | @Override
    method contains (line 55) | @Override
    method apply (line 60) | @Override
    method buildId (line 84) | private static final String buildId(String actorType, ActorId actorId,...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/DaprStateAsyncProviderTest.java
  class DaprStateAsyncProviderTest (line 38) | public class DaprStateAsyncProviderTest {
    class Customer (line 49) | public static final class Customer {
      method getId (line 55) | public int getId() {
      method setId (line 59) | public Customer setId(int id) {
      method getName (line 64) | public String getName() {
      method setName (line 68) | public Customer setName(String name) {
      method equals (line 73) | @Override
      method hashCode (line 82) | @Override
    method happyCaseApply (line 89) | @Test
    method happyCaseLoad (line 151) | @Test
    method happyCaseContains (line 212) | @Test
    method createInsertChange (line 260) | private final <T> ActorStateChange createInsertChange(String name, T v...
    method createUpdateChange (line 264) | private final <T> ActorStateChange createUpdateChange(String name, T v...
    method createDeleteChange (line 268) | private final ActorStateChange createDeleteChange(String name) {

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/DefaultActorFactoryTest.java
  class DefaultActorFactoryTest (line 27) | public class DefaultActorFactoryTest {
    class MyActor (line 32) | static class MyActor extends AbstractActor {
      method MyActor (line 38) | public MyActor(ActorRuntimeContext<MyActor> context, ActorId actorId) {
    class InvalidActor (line 48) | static class InvalidActor extends AbstractActor {
      method InvalidActor (line 49) | InvalidActor() {
    method happyActor (line 57) | @Test
    method noValidConstructor (line 71) | @Test
    method createActorRuntimeContext (line 81) | private static <T extends AbstractActor> ActorRuntimeContext<T> create...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/DerivedActorTest.java
  class DerivedActorTest (line 34) | public class DerivedActorTest {
    type MyActor (line 43) | public interface MyActor {
      method onlyImplementedInParentStringInStringOut (line 47) | Mono<String> onlyImplementedInParentStringInStringOut(String input);
      method onlyImplementedInParentStringInBooleanOut (line 48) | Mono<Boolean> onlyImplementedInParentStringInBooleanOut(String input);
      method onlyImplementedInParentStringInVoidOut (line 49) | Mono<Void> onlyImplementedInParentStringInVoidOut(String input);
      method onlyImplementedInParentClassInClassOut (line 50) | Mono<MyData> onlyImplementedInParentClassInClassOut(MyData input);
      method methodReturningVoidInvoked (line 53) | boolean methodReturningVoidInvoked();
      method stringInStringOut (line 57) | Mono<String> stringInStringOut(String input);
      method stringInBooleanOut (line 58) | Mono<Boolean> stringInBooleanOut(String input);
      method stringInVoidOut (line 59) | Mono<Void> stringInVoidOut(String input);
      method stringInVoidOutIntentionallyThrows (line 60) | Mono<Void> stringInVoidOutIntentionallyThrows(String input);
      method classInClassOut (line 61) | Mono<MyData> classInClassOut(MyData input);
    class ActorParent (line 64) | @ActorType(name = "MyActor")
      method ActorParent (line 70) | public ActorParent(ActorRuntimeContext runtimeContext, ActorId id) {
      method onlyImplementedInParentStringInStringOut (line 77) | @Override
      method onlyImplementedInParentStringInBooleanOut (line 84) | @Override
      method onlyImplementedInParentStringInVoidOut (line 95) | @Override
      method onlyImplementedInParentClassInClassOut (line 103) | @Override
      method methodReturningVoidInvoked (line 112) | @Override
      method stringInStringOut (line 117) | @Override
      method stringInBooleanOut (line 128) | @Override
      method stringInVoidOut (line 138) | @Override
      method stringInVoidOutIntentionallyThrows (line 146) | @Override
      method classInClassOut (line 155) | @Override
    class ActorChild (line 166) | public static class ActorChild extends ActorParent implements MyActor {
      method ActorChild (line 170) | public ActorChild(ActorRuntimeContext runtimeContext, ActorId id) {
      method stringInStringOut (line 176) | @Override
      method stringInBooleanOut (line 184) | @Override
      method classInClassOut (line 195) | @Override
    class MyData (line 205) | static class MyData {
      method MyData (line 209) | public MyData() {
      method MyData (line 214) | public MyData(String name, int num) {
      method getName (line 219) | public String getName() {
      method getNum (line 223) | public int getNum() {
    method stringInStringOut (line 228) | @Test
    method stringInBooleanOut (line 238) | @Test
    method stringInVoidOut (line 252) | @Test
    method stringInVoidOutIntentionallyThrows (line 269) | @Test
    method classInClassOut (line 279) | @Test
    method testInheritedActorMethods (line 296) | @Test
    method newActorId (line 331) | private static ActorId newActorId() {
    method createActorProxyForActorChild (line 335) | private ActorProxy createActorProxyForActorChild() {
    method createContext (line 361) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/JavaSerializer.java
  class JavaSerializer (line 28) | public class JavaSerializer implements DaprObjectSerializer {
    method serialize (line 33) | @Override
    method deserialize (line 47) | @Override
    method getContentType (line 63) | @Override

FILE: sdk-actors/src/test/java/io/dapr/actors/runtime/ThrowFromPreAndPostActorMethodsTest.java
  class ThrowFromPreAndPostActorMethodsTest (line 33) | public class ThrowFromPreAndPostActorMethodsTest {
    type MyActor (line 43) | public interface MyActor {
      method stringInBooleanOut (line 44) | Mono<Boolean> stringInBooleanOut(String input);
    class ActorParent (line 47) | @ActorType(name = "MyActor")
      method ActorParent (line 53) | public ActorParent(ActorRuntimeContext runtimeContext, ActorId id) {
      method onPreActorMethodInternal (line 60) | @Override
      method stringInBooleanOut (line 67) | @Override
    class ActorChild (line 78) | public static class ActorChild extends ActorParent implements MyActor {
      method ActorChild (line 82) | public ActorChild(ActorRuntimeContext runtimeContext, ActorId id) {
      method stringInBooleanOut (line 88) | @Override
    class MyData (line 100) | static class MyData {
      method MyData (line 104) | public MyData() {
      method MyData (line 109) | public MyData(String name, int num) {
      method getName (line 114) | public String getName() {
      method getNum (line 118) | public int getNum() {
    method stringInBooleanOut1 (line 125) | @Test
    method stringInBooleanOut2 (line 136) | @Test
    method newActorId (line 145) | private static ActorId newActorId() {
    method createActorProxyForActorChild (line 149) | private ActorProxy createActorProxyForActorChild() {
    method createContext (line 175) | private static <T extends AbstractActor> ActorRuntimeContext createCon...

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprAutoConfiguration.java
  class DaprAutoConfiguration (line 23) | @Configuration

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprBeanPostProcessor.java
  class DaprBeanPostProcessor (line 41) | @Component
    method DaprBeanPostProcessor (line 47) | DaprBeanPostProcessor(ConfigurableBeanFactory beanFactory) {
    method postProcessBeforeInitialization (line 54) | @Override
    method postProcessAfterInitialization (line 68) | @Override
    method subscribeToTopics (line 79) | private static void subscribeToTopics(
    method getAllCompleteRoutesForPost (line 139) | private static List<String> getAllCompleteRoutesForPost(Class clazz, M...
    method getRoutesForPost (line 162) | private static String[] getRoutesForPost(Method method, String topicNa...
    method confirmLeadingSlash (line 187) | private static String confirmLeadingSlash(String path) {

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprController.java
  class DaprController (line 32) | @RestController
    method healthz (line 43) | @GetMapping(path = "/healthz")
    method daprConfig (line 52) | @GetMapping(path = "/dapr/config", produces = MediaType.APPLICATION_JS...
    method daprSubscribe (line 62) | @GetMapping(path = "/dapr/subscribe", produces = MediaType.APPLICATION...
    method deactivateActor (line 73) | @DeleteMapping(path = "/actors/{type}/{id}")
    method invokeActorMethod (line 87) | @PutMapping(path = "/actors/{type}/{id}/method/{method}")
    method invokeActorTimer (line 103) | @PutMapping(path = "/actors/{type}/{id}/method/timer/{timer}")
    method invokeActorReminder (line 119) | @PutMapping(path = "/actors/{type}/{id}/method/remind/{reminder}")

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprRuntime.java
  class DaprRuntime (line 24) | class DaprRuntime {
    method DaprRuntime (line 40) | private DaprRuntime() {
    method getInstance (line 48) | public static DaprRuntime getInstance() {
    method addSubscribedTopic (line 70) | public synchronized void addSubscribedTopic(String pubSubName,
    method addSubscribedTopic (line 90) | public synchronized void addSubscribedTopic(String pubSubName,
    method addSubscribedTopic (line 112) | public synchronized void addSubscribedTopic(String pubSubName,
    method addSubscribedTopic (line 135) | public synchronized void addSubscribedTopic(String pubSubName,
    method listSubscribedTopics (line 170) | public synchronized DaprTopicSubscription[] listSubscribedTopics() {

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprSubscriptionBuilder.java
  class DaprSubscriptionBuilder (line 23) | class DaprSubscriptionBuilder {
    method DaprSubscriptionBuilder (line 40) | DaprSubscriptionBuilder(String pubsubName, String topic) {
    method setDefaultPath (line 55) | DaprSubscriptionBuilder setDefaultPath(String path) {
    method setDeadLetterTopic (line 74) | DaprSubscriptionBuilder setDeadLetterTopic(String deadLetterTopic) {
    method addRule (line 95) | public DaprSubscriptionBuilder addRule(String path, String match, int ...
    method setMetadata (line 112) | public DaprSubscriptionBuilder setMetadata(Map<String, String> metadat...
    method setBulkSubscribe (line 123) | public DaprSubscriptionBuilder setBulkSubscribe(DaprTopicBulkSubscribe...
    method build (line 133) | public DaprTopicSubscription build() {
    class TopicRule (line 151) | private static class TopicRule {
      method TopicRule (line 157) | public TopicRule(String path, String match, int priority) {
      method getPriority (line 163) | public int getPriority() {

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprTopicBulkSubscribe.java
  class DaprTopicBulkSubscribe (line 16) | class DaprTopicBulkSubscribe {
    method DaprTopicBulkSubscribe (line 21) | DaprTopicBulkSubscribe(boolean enabled) {
    method isEnabled (line 25) | public boolean isEnabled() {
    method getMaxAwaitDurationMs (line 29) | public Integer getMaxAwaitDurationMs() {
    method getMaxMessagesCount (line 33) | public Integer getMaxMessagesCount() {
    method setEnabled (line 37) | public void setEnabled(boolean enabled) {
    method setMaxAwaitDurationMs (line 41) | public void setMaxAwaitDurationMs(int maxAwaitDurationMs) {
    method setMaxMessagesCount (line 48) | public void setMaxMessagesCount(int maxMessagesCount) {

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprTopicKey.java
  class DaprTopicKey (line 18) | class DaprTopicKey {
    method DaprTopicKey (line 22) | DaprTopicKey(String pubsubName, String topic) {
    method getPubsubName (line 27) | public String getPubsubName() {
    method getTopic (line 31) | public String getTopic() {
    method equals (line 35) | @Override
    method hashCode (line 47) | @Override

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprTopicRoutes.java
  class DaprTopicRoutes (line 21) | class DaprTopicRoutes {
    method DaprTopicRoutes (line 26) | DaprTopicRoutes(List<DaprTopicRule> rules, String defaultRoute) {
    method getRules (line 31) | public List<DaprTopicRule> getRules() {
    method getDefaultRoute (line 35) | public String getDefaultRoute() {

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprTopicRule.java
  class DaprTopicRule (line 18) | class DaprTopicRule {
    method DaprTopicRule (line 22) | DaprTopicRule(String match, String path) {
    method getMatch (line 27) | public String getMatch() {
    method getPath (line 31) | public String getPath() {
    method equals (line 35) | @Override
    method hashCode (line 47) | @Override

FILE: sdk-springboot/src/main/java/io/dapr/springboot/DaprTopicSubscription.java
  class DaprTopicSubscription (line 22) | class DaprTopicSubscription {
    method DaprTopicSubscription (line 38) | DaprTopicSubscription(String pubsubName, String topic, String route, M...
    method DaprTopicSubscription (line 50) | DaprTopicSubscription(String pubsubName, String topic, String route, S...
    method DaprTopicSubscription (line 63) | DaprTopicSubscription(String pubsubName, String topic, String route,
    method DaprTopicSubscription (line 77) | DaprTopicSubscription(String pubsubName, String topic, String route, S...
    method DaprTopicSubscription (line 90) | DaprTopicSubscription(String pubsubName, String topic, String route, D...
    method DaprTopicSubscription (line 104) | DaprTopicSubscription(String pubsubName, String topic, String route, S...
    method DaprTopicSubscription (line 119) | DaprTopicSubscription(String pubsubName, String topic, String route,
    method DaprTopicSubscription (line 137) | DaprTopicSubscription(String pubsubName, String topic, String route, S...
    method getPubsubName (line 150) | public String getPubsubName() {
    method getTopic (line 154) | public String getTopic() {
    method getRoute (line 158) | public String getRoute() {
    method getRoutes (line 162) | public DaprTopicRoutes getRoutes() {
    method getDeadLetterTopic (line 166) | public String getDeadLetterTopic() {
    method getMetadata (line 170) | public Map<String, String> getMetadata() {
    method getBulkSubscribe (line 174) | public DaprTopicBulkSubscribe getBulkSubscribe() {

FILE: sdk-springboot/src/test/java/io/dapr/springboot/DaprBeanPostProcessorSubscribeTest.java
  class DaprBeanPostProcessorSubscribeTest (line 25) | public class DaprBeanPostProcessorSubscribeTest {
    method testPostProcessBeforeInitialization (line 27) | @Test
    method assertTopicSubscriptionEquality (line 57) | private void assertTopicSubscriptionEquality(DaprTopicSubscription s1,...
    method getTestDaprTopicSubscriptions (line 71) | private DaprTopicSubscription[] getTestDaprTopicSubscriptions() {
    method getDaprRuntime (line 95) | private DaprRuntime getDaprRuntime() {

FILE: sdk-springboot/src/test/java/io/dapr/springboot/DaprBeanPostProcessorTest.java
  class DaprBeanPostProcessorTest (line 27) | public class DaprBeanPostProcessorTest {
    method routesTester (line 30) | public static Stream<Arguments> routesTester() {
    method testAllPostRoutesGeneration (line 47) | @ParameterizedTest
    method testingListForOrderAgnosticEquality (line 65) | private boolean testingListForOrderAgnosticEquality(List<?> first, Lis...

FILE: sdk-springboot/src/test/java/io/dapr/springboot/DaprRuntimeTest.java
  class DaprRuntimeTest (line 12) | public class DaprRuntimeTest {
    method testPubsubDefaultPathDuplicateRegistration (line 14) | @Test
    method testPubsubDefaultPathDifferentRegistration (line 47) | @Test

FILE: sdk-springboot/src/test/java/io/dapr/springboot/DaprTopicBulkSubscribeTest.java
  class DaprTopicBulkSubscribeTest (line 22) | public class DaprTopicBulkSubscribeTest {
    method testGettersAndSetters (line 23) | @Test
    method testSetMaxMessagesCount (line 37) | @Test
    method testSetMaxAwaitDurationMs (line 58) | @
Copy disabled (too large) Download .json
Condensed preview — 1811 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (24,914K chars).
[
  {
    "path": ".codecov.yaml",
    "chars": 146,
    "preview": "ignore:\n  - examples\n  - sdk-tests\n  - sdk-autogen\ncomment:\n  # Delete old comment and post new one for new coverage inf"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 689,
    "preview": "---\nname: Bug report\nabout: Report a bug in java-sdk\ntitle: ''\nlabels: kind/bug\nassignees: ''\n\n---\n## Expected Behavior\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/discussion.md",
    "chars": 118,
    "preview": "---\nname: Feature Request\nabout: Start a discussion for java-sdk\ntitle: ''\nlabels: kind/discussion\nassignees: ''\n\n---\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 479,
    "preview": "---\nname: Feature Request\nabout: Create a Feature Request for java-sdk\ntitle: ''\nlabels: kind/enhancement\nassignees: ''\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/proposal.md",
    "chars": 133,
    "preview": "---\nname: Proposal\nabout: Create a proposal for java-sdk\ntitle: ''\nlabels: kind/proposal\nassignees: ''\n\n---\n## Describe "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.md",
    "chars": 133,
    "preview": "---\nname: Question\nabout: Ask a question about java-sdk\ntitle: ''\nlabels: kind/question\nassignees: ''\n\n---\n## Ask your q"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 891,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"maven\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    target-"
  },
  {
    "path": ".github/holopin.yml",
    "chars": 130,
    "preview": "organization: dapr\ndefaultSticker: clrqfdv4x24910fl5n4iwu5oa\nstickers:\n  -\n    id: clrqfdv4x24910fl5n4iwu5oa\n    alias: "
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 474,
    "preview": "# Description\n\n_Please explain the changes you've made_\n\n## Issue reference\n\nWe strive to have all PR being opened based"
  },
  {
    "path": ".github/scripts/automerge.py",
    "chars": 2319,
    "preview": "# Copyright 2021 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use th"
  },
  {
    "path": ".github/scripts/create-release.sh",
    "chars": 3939,
    "preview": "#!/usr/bin/env bash\n#\n# Copyright 2024 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\")"
  },
  {
    "path": ".github/scripts/update_docs.sh",
    "chars": 892,
    "preview": "#!/bin/bash\n\nset -uex\n\nDAPR_JAVA_SDK_VERSION=$1\n\n# Alpha artifacts of the sdk tracks the regular SDK minor and patch ver"
  },
  {
    "path": ".github/scripts/update_sdk_version.sh",
    "chars": 1295,
    "preview": "#!/bin/bash\n\nset -uex\n\nDAPR_JAVA_SDK_VERSION=$1\n\n# Alpha artifacts of the sdk tracks the regular SDK minor and patch ver"
  },
  {
    "path": ".github/workflows/automerge-bot.yml",
    "chars": 1093,
    "preview": "# Copyright 2021 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use th"
  },
  {
    "path": ".github/workflows/backport.yaml",
    "chars": 1111,
    "preview": "#\n# Copyright 2026 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use "
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 10260,
    "preview": "name: Build\n\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - master\n      - release-*\n    tags:\n      - v*\n\n  pul"
  },
  {
    "path": ".github/workflows/create-release.yml",
    "chars": 2687,
    "preview": "#\n# Copyright 2024 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use "
  },
  {
    "path": ".github/workflows/dapr_bot.yml",
    "chars": 1028,
    "preview": "name: dapr-bot\n\non:\n  issue_comment: {types: created}\n\njobs:\n  daprbot:\n    name: bot-processor\n    runs-on: ubuntu-late"
  },
  {
    "path": ".github/workflows/fossa.yml",
    "chars": 1468,
    "preview": "#\n# Copyright 2021 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use "
  },
  {
    "path": ".github/workflows/validate-docs.yml",
    "chars": 694,
    "preview": "name: Validate Javadocs Generation\n\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - master\n      - release-*\n    "
  },
  {
    "path": ".github/workflows/validate.yml",
    "chars": 7017,
    "preview": "# Copyright 2021 The Dapr Authors\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use th"
  },
  {
    "path": ".gitignore",
    "chars": 618,
    "preview": "# IDE generated files and directories\n*.iml\n.idea/\n.run/\n.vs/\n.vscode/\n.devcontainer/\n\n# Output folders\n**/target/\n\n# Co"
  },
  {
    "path": ".gitmodules",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".java_header",
    "chars": 632,
    "preview": "^/\\*$\n^ \\* Copyright \\d\\d\\d\\d The Dapr Authors$\n^ \\* Licensed under the Apache License, Version 2.0 \\(the \"License\"\\)\\;$"
  },
  {
    "path": ".mvn/wrapper/maven-wrapper.properties",
    "chars": 1063,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".sdkmanrc",
    "chars": 124,
    "preview": "# Enable auto-env through the sdkman_auto_env config\n# Add key=value pairs of SDKs to use below\njava=17.0.11-tem\nmaven=3"
  },
  {
    "path": "CODEOWNERS",
    "chars": 122,
    "preview": "# These owners are the maintainers and approvers of this repo\n*       @dapr/maintainers-java-sdk @dapr/approvers-java-sd"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 9855,
    "preview": "# Contribution Guidelines\n\nThank you for your interest in Dapr!\n\nThis project welcomes contributions and suggestions. Mo"
  },
  {
    "path": "LICENSE",
    "chars": 11412,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "README.md",
    "chars": 16572,
    "preview": "# Dapr SDK for Java\n\n[![Maven Central](https://img.shields.io/maven-central/v/io.dapr/dapr-sdk.svg?label=Maven%20Central"
  },
  {
    "path": "checkstyle.xml",
    "chars": 14528,
    "preview": "<?xml version=\"1.0\"?>\n<!--\n  Copyright 2021 The Dapr Authors\n  Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/pom.xml",
    "chars": 1813,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/AbstractDaprKeyValueAdapter.java",
    "chars": 4313,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueAdapterResolver.java",
    "chars": 4007,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DaprKeyValueTemplate.java",
    "chars": 14241,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/DefaultIdentifierGenerator.java",
    "chars": 3645,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/GeneratingIdAccessor.java",
    "chars": 2692,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/KeyValueAdapterResolver.java",
    "chars": 757,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/MySQLDaprKeyValueAdapter.java",
    "chars": 7801,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/PostgreSQLDaprKeyValueAdapter.java",
    "chars": 7674,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoriesRegistrar.java",
    "chars": 1287,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/DaprRepositoryConfigurationExtension.java",
    "chars": 1289,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/config/EnableDaprRepositories.java",
    "chars": 5585,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicate.java",
    "chars": 2296,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateBuilder.java",
    "chars": 5509,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-6-data/src/main/java/io/dapr/spring6/data/repository/query/DaprPredicateQueryCreator.java",
    "chars": 4160,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-bom/pom.xml",
    "chars": 6532,
    "preview": "<project\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xmlns=\"http://maven.apache.org/POM/4.0.0\"\n    xsi"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/pom.xml",
    "chars": 4823,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientSB4AutoConfiguration.java",
    "chars": 6955,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfiguration.java",
    "chars": 1876,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/java/io/dapr/spring/boot4/autoconfigure/client/Jackson3ObjectSerializer.java",
    "chars": 3421,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
    "chars": 148,
    "preview": "io.dapr.spring.boot4.autoconfigure.client.DaprJackson3SB4AutoConfiguration\nio.dapr.spring.boot4.autoconfigure.client.Dap"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprClientAutoConfigurationTest.java",
    "chars": 6809,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprJackson3SB4AutoConfigurationTest.java",
    "chars": 3508,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/DaprWorkflowsRegistrationTests.java",
    "chars": 1532,
    "preview": "package io.dapr.spring.boot4.autoconfigure.client;\n\nimport io.dapr.spring.boot4.autoconfigure.client.workflows.TestActiv"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/Jackson3ObjectSerializerTest.java",
    "chars": 14901,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/WorkflowTestApplication.java",
    "chars": 722,
    "preview": "package io.dapr.spring.boot4.autoconfigure.client;\n\nimport io.dapr.spring.workflows.config.EnableDaprWorkflows;\nimport o"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/workflows/TestActivity.java",
    "chars": 537,
    "preview": "package io.dapr.spring.boot4.autoconfigure.client.workflows;\n\nimport io.dapr.workflows.WorkflowActivity;\nimport io.dapr."
  },
  {
    "path": "dapr-spring/dapr-spring-boot-4-autoconfigure/src/test/java/io/dapr/spring/boot4/autoconfigure/client/workflows/TestWorkflow.java",
    "chars": 570,
    "preview": "package io.dapr.spring.boot4.autoconfigure.client.workflows;\n\nimport io.dapr.workflows.Workflow;\nimport io.dapr.workflow"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/pom.xml",
    "chars": 2876,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/main/java/io/dapr/spring/boot/autoconfigure/client/DaprClientAutoConfiguration.java",
    "chars": 6600,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
    "chars": 69,
    "preview": "io.dapr.spring.boot.autoconfigure.client.DaprClientAutoConfiguration\n"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprClientAutoConfigurationTest.java",
    "chars": 6515,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprClientObservationAutoConfigurationTest.java",
    "chars": 7137,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/DaprWorkflowsRegistrationTests.java",
    "chars": 1526,
    "preview": "package io.dapr.spring.boot.autoconfigure.client;\n\nimport io.dapr.spring.boot.autoconfigure.client.workflows.TestActivit"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/WorkflowTestApplication.java",
    "chars": 721,
    "preview": "package io.dapr.spring.boot.autoconfigure.client;\n\nimport io.dapr.spring.workflows.config.EnableDaprWorkflows;\nimport or"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java",
    "chars": 536,
    "preview": "package io.dapr.spring.boot.autoconfigure.client.workflows;\n\nimport io.dapr.workflows.WorkflowActivity;\nimport io.dapr.w"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java",
    "chars": 569,
    "preview": "package io.dapr.spring.boot.autoconfigure.client.workflows;\n\nimport io.dapr.workflows.Workflow;\nimport io.dapr.workflows"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/pom.xml",
    "chars": 2336,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/ObservationDaprClient.java",
    "chars": 34123,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/ObservationDaprWorkflowClient.java",
    "chars": 14256,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/src/main/java/io/dapr/spring/observation/client/TraceContextFormat.java",
    "chars": 2031,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/src/test/java/io/dapr/spring/observation/client/ObservationDaprClientTest.java",
    "chars": 14768,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-observation/src/test/java/io/dapr/spring/observation/client/ObservationDaprWorkflowClientTest.java",
    "chars": 9526,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/pom.xml",
    "chars": 2165,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/ClientPropertiesDaprConnectionDetails.java",
    "chars": 1459,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/DaprClientProperties.java",
    "chars": 2520,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/client/DaprConnectionDetails.java",
    "chars": 926,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/pubsub/DaprPubSubProperties.java",
    "chars": 1309,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/main/java/io/dapr/spring/boot/properties/statestore/DaprStateStoreProperties.java",
    "chars": 1250,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/client/DaprClientPropertiesTest.java",
    "chars": 4467,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/pubsub/DaprPubSubPropertiesTest.java",
    "chars": 2258,
    "preview": "/*\n * Copyright 2025 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-properties/src/test/java/io/dapr/spring/boot/properties/statestore/DaprStateStorePropertiesTest.java",
    "chars": 2285,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-starters/dapr-spring-boot-4-starter/pom.xml",
    "chars": 2362,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-starters/dapr-spring-boot-4-starter-test/pom.xml",
    "chars": 2364,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-starters/dapr-spring-boot-starter/pom.xml",
    "chars": 1671,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-starters/dapr-spring-boot-starter-test/pom.xml",
    "chars": 1789,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-tests/pom.xml",
    "chars": 1620,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-boot-tests/src/main/java/io/dapr/spring/boot/testcontainers/service/connection/DaprContainerConnectionDetailsFactory.java",
    "chars": 2189,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-boot-tests/src/main/resources/META-INF/spring.factories",
    "chars": 177,
    "preview": "org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\\\nio.dapr.spring.boot.testcontainers."
  },
  {
    "path": "dapr-spring/dapr-spring-data/pom.xml",
    "chars": 1263,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/AbstractDaprKeyValueAdapter.java",
    "chars": 4337,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DaprKeyValueAdapterResolver.java",
    "chars": 4006,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DaprKeyValueTemplate.java",
    "chars": 14240,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/DefaultIdentifierGenerator.java",
    "chars": 3644,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/GeneratingIdAccessor.java",
    "chars": 2691,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/KeyValueAdapterResolver.java",
    "chars": 756,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/MySQLDaprKeyValueAdapter.java",
    "chars": 7800,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/PostgreSQLDaprKeyValueAdapter.java",
    "chars": 7672,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/config/DaprRepositoriesRegistrar.java",
    "chars": 1286,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/config/DaprRepositoryConfigurationExtension.java",
    "chars": 1288,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/config/EnableDaprRepositories.java",
    "chars": 5510,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicate.java",
    "chars": 2298,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicateBuilder.java",
    "chars": 5448,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-data/src/main/java/io/dapr/spring/data/repository/query/DaprPredicateQueryCreator.java",
    "chars": 4159,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/pom.xml",
    "chars": 1122,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/DaprMessagingOperations.java",
    "chars": 2080,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/DaprMessagingTemplate.java",
    "chars": 6565,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingObservationConvention.java",
    "chars": 1271,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingObservationDocumentation.java",
    "chars": 1902,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DaprMessagingSenderContext.java",
    "chars": 2761,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-messaging/src/main/java/io/dapr/spring/messaging/observation/DefaultDaprMessagingObservationConvention.java",
    "chars": 1640,
    "preview": "/*\n * Copyright 2024 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-workflows/pom.xml",
    "chars": 1257,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java",
    "chars": 3966,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/EnableDaprWorkflows.java",
    "chars": 993,
    "preview": "/*\n * Copyright 2021 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/annotations/ActivityMetadata.java",
    "chars": 1077,
    "preview": "/*\n * Copyright 2026 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/annotations/WorkflowMetadata.java",
    "chars": 1498,
    "preview": "/*\n * Copyright 2026 The Dapr Authors\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not "
  },
  {
    "path": "dapr-spring/pom.xml",
    "chars": 4749,
    "preview": "<project\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xmlns=\"http://maven.apache.org/POM/4.0.0\"\n    xsi"
  },
  {
    "path": "dapr-spring/spotbugs-exclude.xml",
    "chars": 257,
    "preview": "<FindBugsFilter>\n    <Match>\n        <Package name=\"~io\\.dapr\\.spring.*\"/>\n        <Bug pattern=\"EI_EXPOSE_REP\"/>\n    </"
  },
  {
    "path": "docs/allclasses-index.html",
    "chars": 505114,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>All Classes and Interfaces (dapr-sdk-p"
  },
  {
    "path": "docs/allpackages-index.html",
    "chars": 12121,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>All Packages (dapr-sdk-parent 1.17.2 A"
  },
  {
    "path": "docs/constant-values.html",
    "chars": 524588,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Constant Field Values (dapr-sdk-parent"
  },
  {
    "path": "docs/css/maven-base.css",
    "chars": 3299,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/css/maven-theme.css",
    "chars": 3678,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/css/print.css",
    "chars": 1050,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/css/site.css",
    "chars": 53,
    "preview": "/* You can override this file with your own styles */"
  },
  {
    "path": "docs/dapr-sdk-springboot/css/maven-base.css",
    "chars": 3299,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-springboot/css/maven-theme.css",
    "chars": 3678,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-springboot/css/print.css",
    "chars": 1050,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-springboot/css/site.css",
    "chars": 53,
    "preview": "/* You can override this file with your own styles */"
  },
  {
    "path": "docs/dapr-sdk-workflows/allclasses-index.html",
    "chars": 14774,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>All Classes and Interfaces (dapr-sdk-w"
  },
  {
    "path": "docs/dapr-sdk-workflows/allpackages-index.html",
    "chars": 3315,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>All Packages (dapr-sdk-workflows 1.17."
  },
  {
    "path": "docs/dapr-sdk-workflows/css/maven-base.css",
    "chars": 3299,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-workflows/css/maven-theme.css",
    "chars": 3678,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-workflows/css/print.css",
    "chars": 1050,
    "preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one\r\n * or more contributor license agreements.  See the N"
  },
  {
    "path": "docs/dapr-sdk-workflows/css/site.css",
    "chars": 53,
    "preview": "/* You can override this file with your own styles */"
  },
  {
    "path": "docs/dapr-sdk-workflows/element-list",
    "chars": 96,
    "preview": "io.dapr.workflows\nio.dapr.workflows.client\nio.dapr.workflows.internal\nio.dapr.workflows.runtime\n"
  },
  {
    "path": "docs/dapr-sdk-workflows/help-doc.html",
    "chars": 9688,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>API Help (dapr-sdk-workflows 1.17.2 AP"
  },
  {
    "path": "docs/dapr-sdk-workflows/index-all.html",
    "chars": 120747,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Index (dapr-sdk-workflows 1.17.2 API)<"
  },
  {
    "path": "docs/dapr-sdk-workflows/index.html",
    "chars": 3655,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Overview (dapr-sdk-workflows 1.17.2 AP"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/Workflow.html",
    "chars": 7911,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Workflow (dapr-sdk-workflows 1.17.2 AP"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/WorkflowContext.html",
    "chars": 89363,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowContext (dapr-sdk-workflows 1."
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/WorkflowStub.html",
    "chars": 6665,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowStub (dapr-sdk-workflows 1.17."
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/class-use/Workflow.html",
    "chars": 18482,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Interface io.dapr.workflows.Wo"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/class-use/WorkflowContext.html",
    "chars": 6100,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Interface io.dapr.workflows.Wo"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/class-use/WorkflowStub.html",
    "chars": 4378,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Interface io.dapr.workflows.Wo"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/DaprWorkflowClient.html",
    "chars": 69456,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>DaprWorkflowClient (dapr-sdk-workflows"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/WorkflowFailureDetails.html",
    "chars": 11566,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowFailureDetails (dapr-sdk-workf"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/WorkflowInstanceStatus.html",
    "chars": 28627,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowInstanceStatus (dapr-sdk-workf"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/class-use/DaprWorkflowClient.html",
    "chars": 2915,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Class io.dapr.workflows.client"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/class-use/WorkflowFailureDetails.html",
    "chars": 11299,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Interface io.dapr.workflows.cl"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/class-use/WorkflowInstanceStatus.html",
    "chars": 9378,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Interface io.dapr.workflows.cl"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/package-summary.html",
    "chars": 7491,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.client (dapr-sdk-wor"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/package-tree.html",
    "chars": 5383,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.client Class Hierarc"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/client/package-use.html",
    "chars": 7788,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Package io.dapr.workflows.clie"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/internal/ApiTokenClientInterceptor.html",
    "chars": 11114,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ApiTokenClientInterceptor (dapr-sdk-wo"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/internal/class-use/ApiTokenClientInterceptor.html",
    "chars": 2969,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Class io.dapr.workflows.intern"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/internal/package-summary.html",
    "chars": 4342,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.internal (dapr-sdk-w"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/internal/package-tree.html",
    "chars": 3313,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.internal Class Hiera"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/internal/package-use.html",
    "chars": 2710,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Package io.dapr.workflows.inte"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/package-summary.html",
    "chars": 7936,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows (dapr-sdk-workflows "
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/package-tree.html",
    "chars": 4753,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows Class Hierarchy (dap"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/package-use.html",
    "chars": 7856,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Package io.dapr.workflows (dap"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/WorkflowRuntime.html",
    "chars": 13973,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowRuntime (dapr-sdk-workflows 1."
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/WorkflowRuntimeBuilder.html",
    "chars": 39556,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>WorkflowRuntimeBuilder (dapr-sdk-workf"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/class-use/WorkflowRuntime.html",
    "chars": 4557,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Class io.dapr.workflows.runtim"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/class-use/WorkflowRuntimeBuilder.html",
    "chars": 15065,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Class io.dapr.workflows.runtim"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/package-summary.html",
    "chars": 8028,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.runtime (dapr-sdk-wo"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/package-tree.html",
    "chars": 6267,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>io.dapr.workflows.runtime Class Hierar"
  },
  {
    "path": "docs/dapr-sdk-workflows/io/dapr/workflows/runtime/package-use.html",
    "chars": 4771,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Package io.dapr.workflows.runt"
  },
  {
    "path": "docs/dapr-sdk-workflows/jquery-ui.overrides.css",
    "chars": 1498,
    "preview": "/*\n * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT N"
  },
  {
    "path": "docs/dapr-sdk-workflows/legal/ADDITIONAL_LICENSE_INFO",
    "chars": 2114,
    "preview": "                      ADDITIONAL INFORMATION ABOUT LICENSING\n\nCertain files distributed by Oracle America, Inc. and/or i"
  },
  {
    "path": "docs/dapr-sdk-workflows/legal/ASSEMBLY_EXCEPTION",
    "chars": 1522,
    "preview": "\nOPENJDK ASSEMBLY EXCEPTION\n\nThe OpenJDK source code made available by Oracle America, Inc. (Oracle) at\nopenjdk.java.net"
  },
  {
    "path": "docs/dapr-sdk-workflows/legal/LICENSE",
    "chars": 19274,
    "preview": "The GNU General Public License (GPL)\n\nVersion 2, June 1991\n\nCopyright (C) 1989, 1991 Free Software Foundation, Inc.\n51 F"
  },
  {
    "path": "docs/dapr-sdk-workflows/legal/jquery.md",
    "chars": 1157,
    "preview": "## jQuery v3.7.1\n\n### jQuery License\n```\njQuery v 3.7.1\nCopyright OpenJS Foundation and other contributors, https://open"
  },
  {
    "path": "docs/dapr-sdk-workflows/legal/jqueryUI.md",
    "chars": 1871,
    "preview": "## jQuery UI v1.14.1\n\n### jQuery UI License\n```\nCopyright OpenJS Foundation and other contributors, https://openjsf.org/"
  },
  {
    "path": "docs/dapr-sdk-workflows/member-search-index.js",
    "chars": 29701,
    "preview": "memberSearchIndex = [{\"p\":\"io.dapr.workflows.runtime\",\"c\":\"DefaultWorkflowContext\",\"l\":\"allOf(List<Task<V>>)\",\"u\":\"allOf"
  },
  {
    "path": "docs/dapr-sdk-workflows/module-search-index.js",
    "chars": 45,
    "preview": "moduleSearchIndex = [];updateSearchResults();"
  },
  {
    "path": "docs/dapr-sdk-workflows/overview-summary.html",
    "chars": 838,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>dapr-sdk-workflows 1.17.2 API</title>\n"
  },
  {
    "path": "docs/dapr-sdk-workflows/overview-tree.html",
    "chars": 11179,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Class Hierarchy (dapr-sdk-workflows 1."
  },
  {
    "path": "docs/dapr-sdk-workflows/package-search-index.js",
    "chars": 223,
    "preview": "packageSearchIndex = [{\"l\":\"All Packages\",\"u\":\"allpackages-index.html\"},{\"l\":\"io.dapr.workflows\"},{\"l\":\"io.dapr.workflow"
  },
  {
    "path": "docs/dapr-sdk-workflows/project-reports.html",
    "chars": 2834,
    "preview": "<!DOCTYPE html>\n<!--\n | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-site-pl"
  },
  {
    "path": "docs/dapr-sdk-workflows/script.js",
    "chars": 5014,
    "preview": "/*\n * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT N"
  },
  {
    "path": "docs/dapr-sdk-workflows/search.js",
    "chars": 13742,
    "preview": "/*\n * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT N"
  },
  {
    "path": "docs/dapr-sdk-workflows/stylesheet.css",
    "chars": 18737,
    "preview": "/*\n * Javadoc style sheet\n */\n\n@import url('resources/fonts/dejavu.css');\n\n/*\n * Styles for individual HTML elements.\n *"
  },
  {
    "path": "docs/dapr-sdk-workflows/tag-search-index.js",
    "chars": 42,
    "preview": "tagSearchIndex = [];updateSearchResults();"
  },
  {
    "path": "docs/dapr-sdk-workflows/type-search-index.js",
    "chars": 1780,
    "preview": "typeSearchIndex = [{\"l\":\"All Classes and Interfaces\",\"u\":\"allclasses-index.html\"},{\"p\":\"io.dapr.workflows.internal\",\"l\":"
  },
  {
    "path": "docs/deprecated-list.html",
    "chars": 103258,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Deprecated List (dapr-sdk-parent 1.17."
  },
  {
    "path": "docs/element-list",
    "chars": 1492,
    "preview": "io.dapr\nio.dapr.actors\nio.dapr.actors.client\nio.dapr.actors.runtime\nio.dapr.client\nio.dapr.client.domain\nio.dapr.client."
  },
  {
    "path": "docs/help-doc.html",
    "chars": 10488,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>API Help (dapr-sdk-parent 1.17.2 API)<"
  },
  {
    "path": "docs/index.html",
    "chars": 16500,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Overview (dapr-sdk-parent 1.17.2 API)<"
  },
  {
    "path": "docs/io/dapr/Rule.html",
    "chars": 7075,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Rule (dapr-sdk-parent 1.17.2 API)</tit"
  },
  {
    "path": "docs/io/dapr/Topic.html",
    "chars": 10784,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Topic (dapr-sdk-parent 1.17.2 API)</ti"
  },
  {
    "path": "docs/io/dapr/actors/ActorId.html",
    "chars": 18333,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ActorId (dapr-sdk-parent 1.17.2 API)</"
  },
  {
    "path": "docs/io/dapr/actors/ActorMethod.html",
    "chars": 7432,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ActorMethod (dapr-sdk-parent 1.17.2 AP"
  },
  {
    "path": "docs/io/dapr/actors/ActorTrace.html",
    "chars": 17310,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ActorTrace (dapr-sdk-parent 1.17.2 API"
  },
  {
    "path": "docs/io/dapr/actors/ActorType.html",
    "chars": 6472,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ActorType (dapr-sdk-parent 1.17.2 API)"
  },
  {
    "path": "docs/io/dapr/actors/ActorUtils.html",
    "chars": 10961,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>ActorUtils (dapr-sdk-parent 1.17.2 API"
  },
  {
    "path": "docs/io/dapr/actors/class-use/ActorId.html",
    "chars": 11053,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Class io.dapr.actors.ActorId ("
  },
  {
    "path": "docs/io/dapr/actors/class-use/ActorMethod.html",
    "chars": 2822,
    "preview": "<!DOCTYPE HTML>\n<html lang=\"en\">\n<head>\n<!-- Generated by javadoc (17) -->\n<title>Uses of Annotation Type io.dapr.actors"
  }
]

// ... and 1611 more files (download for full content)

About this extraction

This page contains the full source code of the dapr/java-sdk GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1811 files (34.8 MB), approximately 6.0M tokens, and a symbol index with 6717 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!