Highlights
This release is focused on providing new Search Attributes functionality:
- New
Workflow.getSearchAttribute(String)
,Workflow.getSearchAttributeValues(String)
,
Workflow.getSearchAttributes()
methods to get deserialized search attributes - Unit tests can register new search attributes on both Test Server and dockerized Temporal Server
- Unit tests can use Test Server to verify search attributes behavior and implementation.
Test server exposes new gRPC TestService providing time skipping API to be used in other SDKs.
An upgrade of Temporal Server and Temporal docker-compose to 1.16 is highly recommended to use the new Search Attribute APIs.
Fixes
- Edge case of "unexpected event WORKFLOW_TASK_COMPLETED" when querying a non-completed workflow evicted from sticky cache #1134
- Deadlock Detection may cause "Operation allowed only while eventLoop is running" in the workflow code #1127
- Protobuf version range that was making 1.8.x release hard to use with Maven
Migration notes
Previously unit tests setting search attributes were running using the test server without any setup. The test server previously didn't use search attributes at all. This release brings full support for search attributes in the test server and the attributes need to be registered now before they are used in unit tests (as with the real Temporal server).
See: TestWorkflowRule.Builder#registerSearchAttribute
, TestWorkflowExtension.Builder#registerSearchAttribute
, TestWorkflowEnvironment#registerSearchAttribute
.
What's Changed
- Improve operation resilience of prepare-release by @mmcshane in #1058
- Expose OrchestratorServiceStubs by @Spikhalskiy in #1057
- Code cleanup around Pollers by @Spikhalskiy in #1070
- Synchronize GrpcSyncRetryer and GrpcAsyncRetryer behavior, make non-final exceptions INFO level by @Spikhalskiy in #1065
- Implement Test Operator Service by @Spikhalskiy in #1071
- Fix flake with dockerized temporal when signal gets reordered with the first workflow task by @Spikhalskiy in #1075
- Fix comments for newUntypedExternalWorkflowStub by @tsurdilo in #1077
- Time Skipping Service by @Spikhalskiy in #1076
- Fix Search in Javadocs by @Spikhalskiy in #1078
- Fix for WorkerOptions Builder using maxConcurrentActivityExecutionSize for local activities in partial build() by @Spikhalskiy in #1082
- Exclude synthetic and static methods from Activity Interface Hierarchy by @Spikhalskiy in #1083
- Add support for UpsertSearchAttributes to describe in the test service by @nagl-stripe in #1090
- Improve context propagator javadocs by @Spikhalskiy in #1092
- Improve client WorkflowFailedException message with the reason by @Spikhalskiy in #1095
- Swallow "Subchannel shutdown" gRPC errors during worker shutdown by @Spikhalskiy in #1089
- Improve Poller's shutdown log message with a poll task class by @Spikhalskiy in #1108
- Tests verifying that getVersion inside a signal handler works correctly by @Spikhalskiy in #1121
- Test Server times out workflow task in case of workflow task failure after the second attempt by @Spikhalskiy in #1124
- Improve PotentialDeadlockException message with timestamps by @Spikhalskiy in #1122
- Fix "Operation allowed only while eventLoop is running" exception if deadlock is detected by @Spikhalskiy in #1127
- State Machines now don't try to handle already handled events a second time by @Spikhalskiy in #1134
- Deserialized Search Attributes API and full Test Server implementation for Search Attributes by @Spikhalskiy in #1067
Full Changelog: v1.8.1...v1.9.0