Releases: temporalio/sdk-java
v1.22.0
Highlights
Tracing improvements
Improved tracing support in signals, queries, and update.
Bugfixes
- Fixes a bug where after a server failure a worker could end up only polling on the sticky task queue and
never poll on the normal task queue - Fix caching in WorkflowLocal/WorkflowThreadLocal to match behavior of ThreadLocal
- Fixes a bug where the SDK would receive a workflow task, but may not run the users Workflow code.
Migration note for SpringBoot users:
Changed the SDK from using ContextStartedEvent to ApplicationReadyEvent to avoid the need to start
application context again after it is already started. See #1837
for more details.
Changeset
2023-08-16 - f922c06 - Fix bug in VersionStateMachine causing wrong version to get returned (#1841)
2023-08-17 - 0f37297 - Remove unbound variable (#1846)
2023-08-19 - c012357 - add WorkflowImplementationOptions customizer (#1835)
2023-08-28 - 4298dad - Reconcile typed search attributes with schedules (#1848)
2023-08-30 - ac474fa - Add new workflow info fields (#1853)
2023-09-07 - 18162b7 - Reset sticky queue backlog on empty response (#1859)
2023-09-25 - 456da32 - Fix null pointer on trigger immediately (#1865)
2023-09-25 - d50d274 - Tracing support improvements (#1819)
2023-09-26 - 717ee05 - Release WF slot on UnableToAcquireLockException (#1871)
2023-09-26 - aa5cb41 - Fix workflow options equality (#1868)
2023-10-02 - 198c780 - Fix caching in WorkflowLocal/WorkflowThreadLocal (#1876) (#1878)
2023-10-02 - 751a0b6 - Expose worker versioning via spring boot autoconfig (#1869)
2023-10-03 - 3670bce - Support Spring Boot 3 native image build (#1877)
2023-10-05 - b083a70 - Disable eager start by default (#1879)
2023-10-10 - 1606de5 - Update Spring Boot to v2.7.12 (#1884)
2023-10-10 - 1fb089f - Avoid incrementing WFT failure metric on respond failure (#1887)
2023-10-10 - 2475838 - Reset lastHandledEventId on speculative WFT (#1881)
2023-10-10 - 720a9cb - Only rely on next page token for pagination (#1886)
2023-10-10 - d5d96f8 - Use ApplicationReadyEvent to start spring workers (#1882)
2023-10-10 - dac53be - Fix build for Linux for aarch64 (#1891)
v1.21.2
Highlights
Bugfixes
Fixes a bug where after a server failure a worker could end up only polling on the sticky task queue and
never poll on the normal task queue
Changeset
2023-09-27 - 67a5afb - Remove unbound variable (#1846)
2023-09-27 - d4671e3 - Reset sticky queue backlog on empty response (#1859)
2023-09-27 - d8091d1 - Release WF slot on UnableToAcquireLockException (#1871)
v1.21.1
Highlights
Bugfixes
- Fixes a CRITICAL issue with
GetVersionreturning the wrong version on replay.
Upgrade to this version instead of 1.21.0
Changeset
2023-08-04 - 5ce6f10 - Replace interpolated variables (#1834)
2023-08-14 - 622edc0 - Build test server on ubuntu 18 (#1836)
2023-08-16 - f922c06 - Fix bug in VersionStateMachine causing wrong version to get returned (#1841)
v1.21.0
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
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
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
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
Highlights
- Encoding/encryption of Failures. See
CodecDataConverter#encodeFailureAttributes - GraalVM descriptors for core modules
- New temporal-shaded module that shades grpc, protobuf, guava
- Eager Workflow Task Dispatch. Requires Temporal Server 1.20+
- Fixes for some overly verbose exception traces in the history
- Experimental
SerializationContextsupport inPayloadConverterandPayloadCodec
What's Changed
- Fix WorkflowHistoryIterator issue with unitialized field by @Spikhalskiy in #1636
- Release v1.18.1 by @Spikhalskiy in #1637
- Add an integration test that covers critical history pagination code by @Spikhalskiy in #1638
- Update protos, use #namespace in register SA request, use old protoc on M1 by @Spikhalskiy in #1625
- Use ByteString.EMPTY in EagerPaginator by @jeffschoner-stripe in #1643
- Fix Eager Activity Dispatch Worker state check, rework states of internal Workers by @Spikhalskiy in #1654
- Implement FailureConverter API by @mjameswh in #1645
- temporal-shaded that includes sdk and testing, shades grpc, protobuf, guava by @Spikhalskiy in #1656
- Fix temporal-shaded packaging type by @Spikhalskiy in #1657
- Don't relocate com.google.gson during shadowing by @Spikhalskiy in #1658
- Provide GraalVM descriptors for temporal-sdk, add docs for users using native-image by @Spikhalskiy in #1660
- Implement nonfirst attempt LA metering changes by @Sushisource in #1659
- Fix WorkflowStub#getExecution returning null after signalWithStart by @Spikhalskiy in #1670
- Fix overly sensitive count checks in la metering test by @Sushisource in #1673
- Update CODEOWNERS to sdk team by @Spikhalskiy in #1675
- Eager Workflow Task Dispatch by @Spikhalskiy in #1674
- Support terminate-if-running workflow ID reuse policy in test server by @jeffschoner-stripe in #1683
- Fix rare deadlock when event loop is triggered after a main thread threw an exception by @Spikhalskiy in #1690
- Provide SerializationContext for PayloadConverter and PayloadCodec by @Spikhalskiy in #1695
- Fix stacktrace cutoff methods initialization by @Spikhalskiy in #1699
- Fix premature triggering of eventLoop in case of activity cancelation before all events from WFT are applied by @Spikhalskiy in #1691
- Wait for worker slots to be fully released in the graceful worker shutdown by @Spikhalskiy in #1679
- Cleanup for release v1.19.0 by @Spikhalskiy in #1701
- Release v1.19.0 by @Spikhalskiy in #1702
Full Changelog: v1.18.0...v1.19.0
v1.18.2
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
Highlights
Fixes a CRITICAL issue with an uninitialized issue in the history iterator (#1639)
What's Changed
- Fix WorkflowHistoryIterator issue with unitialized field by @Spikhalskiy in #1636
Full Changelog: v1.18.0...v1.18.1