Skip to content

Releases: temporalio/sdk-java

v1.21.0

02 Aug 01:02
ca0bdf3
Compare
Choose a tag to compare

Highlights

Note

Skip this release and use v1.21.1

Bugfixes

  • Fixes an issue with versioning in signal handlers leading to non determinism.
  • Fixes an issue with ScheduleClient not throwing an exception on a failed create

Readonly Protection

Added protection in the SDK against running mutating workflow functions in a read only context.
A read only context is a query handler, update validator, side effect, or mutable side effect.
Previously, in some cases, the SDK would seem to allow it but silently generate an invalid workflow history.
This change allows developers to quickly catch their mistake and prevents generating invalid workflow histories

Changeset

2023-07-17 - 3be060b - ScheduleClient for SpringBoot (#1816)
2023-07-17 - 6054c31 - Make GetVersion more deterministic (#1807)
2023-07-17 - c5cf7bb - fix(schedule): try catch clause and rethrow StatusRuntimeException that does not match status c… (#1818)
2023-07-21 - 16755a1 - Block mutating workflow state in a read only context (#1821)
2023-07-21 - c2b941a - Add unit test for concurrent WFT (#1822)
2023-08-01 - 3ffe294 - Increase MaxBufferedQueryCount (#1829)
2023-08-01 - bf6ae4b - Fix jacoco code coverage (#1828)

v1.20.1

20 Jul 13:23
c5cf7bb
Compare
Choose a tag to compare

Highlights

Default implementation for exceptionToFailure and failureToException to fix an unintentional breaking change
in the DataConverter interface.

Changeset

2023-06-27 - 57cb086 - Add support for SDK metadata to test server (#1800)
2023-06-27 - c6aadda - Expose started time in ActivityInfo (#1798)
2023-06-29 - 9a45715 - Generate bom using java-platform plugin (#1796)
2023-07-03 - 15337d9 - Add Semgrep scanning (#1775)
2023-07-10 - 25387be - Add default methods for exceptionToFailure and failureToException (#1809)
2023-07-13 - f30d349 - Add description to bom project (#1813)

v1.20.0

20 Jun 22:51
4e9b081
Compare
Choose a tag to compare

Highlights

Schedules API

This version adds support for the schedule API to help users run workflows periodically.

Note: the following two features will require support from the Temporal server, to be available in release v1.21.0.

Experimental: Worker Versioning

This version adds support for our new Worker Versioning feature. Please note that this feature's API is subject to
change. This feature allows you to assign build identifiers to workers, and ensure that workers operating on a task
queue do not receive tasks that they will be incompatible with. You declare the relative [in]compatibility of build
identifiers. We will be publishing documentation on this feature soon (and these notes will be updated with a link).

Experimental: Workflow Update

This version adds support for Workflow Update. Workflow Update is another way to interact with a running workflow along
with signals and queries. Workflow update combines aspects of signals and queries. Like signals, updates can
mutate workflow state. Like queries, updates can return a value to the caller based on a workflows state.

Changeset

2023-03-30 - 0b7d1b7 - Allow Data Converter code to escape deadlock detection (#1723)
2023-04-12 - 4f91956 - Fix getOriginalExecutionRunId return value and add explicit @nonnull annotations (#1737)
2023-04-19 - 1e49493 - Add comment on Workflow#newQueue (#1747)
2023-04-21 - c1cff1c - Data Converters now have method deserializing all the Payloads at once (#1726)
2023-04-27 - ad27b61 - Add support for sync update (#1749)
2023-04-27 - d5b3e89 - Remove use of deprecated API (#1758)
2023-05-01 - 5ed77f7 - Allow task queue names to use property placeholders (#1760)
2023-05-10 - e354d1f - Add support for update to the Java test server (#1762)
2023-05-16 - 16dc271 - Update README.md (#1765)
2023-05-19 - 1be0cee - Add support for async update (#1766)
2023-05-31 - 18120b1 - Update CODEOWNERS (#1773)
2023-06-07 - a73e9d9 - Issue 1761 fix supplier reuse (#1779)
2023-06-07 - ee2f5d0 - Add update protocol commands (#1780)
2023-06-08 - 0985041 - Add schedules API (#1776)
2023-06-12 - bff4b6f - Typed search attributes (#1782)
2023-06-15 - 94424c8 - Treat UpdateWorkflowExecution as a long poll (#1784)
2023-06-16 - c215a78 - Worker / Build Id versioning (#1786)
2023-06-16 - c30e07d - Do not add accepted/rejected request to messages (#1787)
2023-06-19 - 479cf4b - WorkerOptions extend javadocs for default values (#1774)
2023-06-20 - 55e29ca - Avoid NPE on malformed/truncated failure stack traces (#1795)

v1.19.1

23 Mar 23:43
c0b3f6b
Compare
Choose a tag to compare

Highlights

Fixes native test server distribution not working correctly if search attributes are used.
JavaSDK users don't need to upgrade to this release until they build their own native test server distribution.

What's Changed

  • Fix location of graal descriptors and a missing reflection reference for temporal-sdk module in #1713

v1.19.0

17 Mar 18:27
cf25ef7
Compare
Choose a tag to compare

Highlights

What's Changed

Full Changelog: v1.18.0...v1.19.0

v1.18.2

23 Feb 17:14
Compare
Choose a tag to compare

Highlights

Fixes an issue with WorkflowStub#getExecution not returning an execution started by signalWithStart introduced in v1.18.x

Full Changelog: v1.18.1...v1.18.2

v1.18.1

02 Feb 17:20
6f0f058
Compare
Choose a tag to compare

Highlights

Fixes a CRITICAL issue with an uninitialized issue in the history iterator (#1639)

What's Changed

Full Changelog: v1.18.0...v1.18.1

v1.18.0

31 Jan 16:36
a8b5e31
Compare
Choose a tag to compare

🛑 Critical bug. Skip this release and upgrade to v1.18.1 instead.

Highlights

Comprehensive rework of Local Activity Worker implementation

  • Local Activities now respect all the timeouts set on LocalActivityOptions.
  • Lower ScheduleToStart latencies for Local Activities and a backpressure that prefers retries over new executions
  • LocalActivityOptions got scheduleToStart timeout
  • Bugfix for OpenTelemetry/OpenTracing incorrectly showing exaggerated scheduleToStart latency for Local Activities (#1573)

Spring Boot module

  • Spring Boot 3 support
  • *Options Customizer beans for fine-grained control over *Options instances used by Spring Boot
  • Workers names based configuration to keep Task Queue names contained in the config only
  • More wired WorkflowFactoryOptions and WorkerOptions properties
  • Bugfixes for beans ordering (#1614) and test environment setup (#1622)

New WorkflowClient methods

  • WorkflowClient#listExecutions for fetching and iterating through Workflow Executions based on Visibility Queries
  • WorkflowClient#fetchHistory and WorkflowClient#streamHistory for retrieving Workflow history from the Server to be used in replay or for export.

New WorkflowInfo metadata available for Workflow code:

  • WorkflowInfo#getHistoryLength()
  • WorkflowInfo#getFirstExecutionRunId()
  • WorkflowInfo#getOriginalExecutionRunId()

Bugfixes

  • Query on a stub that was was used for start a workflow now follows chain of runIds (#1612)
  • Failures happened in Signal methods are now treated the same way as failures in Workflow methods (#1616)

Migration note

Previously Local Activity Workers didn't respect startToClose and, in some cases, scheduleToClose timeouts.
Some users may have LocalActivityOptions configurations that don't accommodate their actual timings but previously were unenforced.
The enforcement will kick in after an upgrade on v1.18+ and may lead to Local Activity failures that were not happening before.
Users may need to test and adjust their LocalActivityOptions timeouts before rolling out v1.18+ to production.

Spring Boot: org.springframework.context.ConfigurableApplicationContext.start lifecycle method needs to be called for workers to auto-start.

What's Changed

New Contributors

Full Changelog: v1.17.0...v1.18.0

v1.18.0-RC1

10 Jan 22:22
a69f674
Compare
Choose a tag to compare

Highlights

v1.18 release will bring a comprehensive rework of Local Activity Worker implementation

  • Local Activities now respect all the timeouts set on LocalActivityOptions.
  • Lower ScheduleToStart latencies for Local Activities and a backpressure that prefers retries over new executions
  • LocalActivityOptions got scheduleToStart timeout

Migration note:
Previously Local Activity Workers didn't respect startToClose and, in some cases, scheduleToClose timeouts.
Some users may have LocalActivityOptions configurations that don't accommodate their actual timings but previously were unenforced.
The enforcement will kick in after an upgrade on v1.18+ and may lead to Local Activity failures that were not happening before.
Users may need to test and adjust their LocalActivityOptions timeouts before rolling out v1.18+ to production.

What's Changed

New Contributors

Full Changelog: v1.17.0...v1.18.0-RC1

v1.17.0

25 Oct 20:31
71bc122
Compare
Choose a tag to compare

Highlights

This release brings a lot of performance improvements for high throughput scenarios.
Eager Activity Dispatch is added. This feature requires Temporal Server 1.19+ and is not effective on earlier releases.

What's Changed

New Contributors

Full Changelog: v1.16.0...v1.17.0