github temporalio/sdk-java v1.28.0

16 hours ago

💥 BREAKING CHANGES

Nexus (Public Preview)

  • ⚠️ IMPORTANT ⚠️ This SDK release requires server >=1.27.0 to properly support the full set of changes from the previous SDK release. Most notably the built-in error translation logic changed in a way that may cause Nexus tasks to retry until the caller specified schedule-to-close timeout on certain failures, see more below.
  • Setting WorkflowIDConflictPolicy to WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING has been temporarily disabled, and will fail requests with a retryable internal error.
    • This is to protect users from making a false assumption that the same workflow can be used to back multiple operations. This capability will be enabled in a follow up release.
  • WorkflowClientOperationHandlers was renamed to WorkflowRunOperation
  • OperationId was renamed to OperationToken and the content for a WorkflowRunOperation of it was changed to a structured token instead of copying the workflow ID directly.
  • Removed WorkflowClient from the input of all Temporal nexus handlers, a client can now be accessed by calling Nexus.getOperationContext().getWorkflowClient()
  • FailureConverter now supports serializing and deserializing HandlerException . Previously these may have been deserialized as ApplicationFailure .
    • Note: This is can potentially cause Non-Determinism exceptions if users were handling ApplicationFailure .
  • The promise returned from NexusOperationHandle.getExecution() now correctly will return the appropriate exception if the underlying nexus fails in a synchronous manner
    • Note: This is can potentially cause Non-Determinism exceptions if users called NexusOperationHandle.getExecution()

Failure Converter

The FailureConverter interface was changed. FailureConverter.failureToException now can return any type implementing RuntimeException instead of just types implementing TemporalFailure

Java Protobuf 3/4 Support

The Temporal Java SDK now supports protobuf-java 3.x and 4.x. To support these, the Temporal Java SDK allows any protobuf library >= 3.25. Temporal strongly recommends using the latest protobuf-java 4.x library unless you absolutely cannot. If you cannot use protobuf-java 3.25 >=, you can try temporal-shaded which includes a shaded version of the protobuf-java library.

Highlights

Spring Boot API Key support

The Java SDK Spring Boot integration now directly supports API key authentication.

For documentation see: https://github.com/temporalio/sdk-java/tree/master/temporal-spring-boot-autoconfigure#api-keys

Spring Boot Multi-Namespace support (Experimental)

The Java SDK Spring Boot integration now has experimental support for running multiple none-root namespace along side the root namespace.

For documentation see: https://github.com/temporalio/sdk-java/tree/master/temporal-spring-boot-autoconfigure#running-multiple-name-space-experimental

What's Changed

2024-12-09 - e1bef89 - Update protocloud submodule (#2344)
2024-12-12 - 53a8af7 - Remove Experimental annotations from Update APIs (#2347)
2024-12-27 - c3e0e77 - Set request Id on SignalWorkflowExecutionRequest (#2352)
2025-01-06 - 82d3c93 - Update Java SDK for Temporal Sever v1.26.2 (#2357)
2025-01-06 - 9a8894a - Set LastHeartbeatDetails on activity failure (#2354)
2025-01-06 - ff333ca - Add javadocs for ActivityCompletionClient (#2353)
2025-01-08 - cf06131 - Test server support for Nexus operation complete before start (#2348)
2025-01-15 - 35e390e - Add method to get workflow client from an activity (#2369)
2025-01-16 - 90e5125 - Fix NDE caused by removing Workflow.getVersion with a succeeding Work… (#2370)
2025-01-16 - b187644 - Add details to manifest (#2355)
2025-01-16 - b593b35 - [OpenTracing] Wrap returned promises in OutboundCallsInterceptor (#2366)
2025-01-17 - 3ad0b0e - Avoid lock up on unexpected ExecutorService errors while executing Local Activities (#2371)
2025-01-22 - b471e13 - Access to workflow/activity instance from context (#2384)
2025-01-22 - c51e5d1 - Upgrade some test dependencies (#2382)
2025-01-22 - cdbc520 - Split up & use more appropriate timeouts for parallel LAs test (#2385)
2025-01-28 - 8b17a52 - Support Proto 3 and 4 (#2383)
2025-01-28 - ce90d24 - Enable speculative workflow tasks (#2390)
2025-01-28 - f93910b - Make sure GetVersion never yields (#2376)
2025-02-03 - de33b3a - Update docs for max workflow task timeout (#2396)
2025-02-04 - fd65ea9 - Inject namespace header (#2400)
2025-02-07 - 32df8d4 - Remove Nexus sync client handler (#2403)
2025-02-07 - 76630fe - Update max task timeout (#2407)
2025-02-10 - 32fbf02 - Fix kotlin child workflow execute varargs (#2395)
2025-02-10 - f9a9cad - Rename WorkflowClientOperationHandlers->WorkflowRunOperation (#2405)
2025-02-10 - fc4d714 - Update proto v1.44.0 (#2406)
2025-02-11 - 00f7dd0 - Add API key property to Springboot (#2408)
2025-02-11 - 24f225c - Java test server support for attaching links to signal and signal with start requests (#2411)
2025-02-12 - c6e0306 - Special behavior for Temporal built-in prefixes (#2409)
2025-02-17 - c6375d6 - feat: multi namespace support (#2378)
2025-02-18 - 436d080 - Add Graal reflection config for UwS (#2363)
2025-02-18 - 6f4621d - Update readme for multi namespace support (#2416)
2025-02-18 - a2455af - Make sure workflow_task_execution_failed always has a failure_reason (#2419)
2025-02-18 - a643a79 - Add nexus configuration to spring boot readme (#2417)
2025-02-20 - f92b53c - 💥 Nexus error rehydration (#2365)
2025-02-21 - 963ea9f - Add sdk name/version to task completions when unset or changed (#2422)
2025-02-24 - 49bd366 - Add support for operation timeout header (#2427)
2025-02-24 - 729e25e - Workflow run token (#2421)
2025-02-24 - d0cf3f3 - Add support for attaching to a running workflow (#2424)
2025-02-25 - 7cd4932 - fix documentation in CapacityConfigurationProperties (#2429)
2025-02-25 - f90c57b - Block using conflict policy UseExisting for Nexus WorkflowRunOperation (#2428)

Don't miss a new sdk-java release

NewReleases is sending notifications on new releases.