Skip to content

Releases: temporalio/sdk-java

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

v1.17.0-RC1

27 Sep 00:29
813769f
Compare
Choose a tag to compare
v1.17.0-RC1 Pre-release
Pre-release

Highlights

⚠️ Release Candidate
This release brings performance improvements for high throughput scenarios.

What's Changed

  • Port config of default Jackson timestamp deserialization to kotlin by @Spikhalskiy in #1388
  • Align Test Server behavior with the real one if completion command is not the last by @Spikhalskiy in #1399
  • Test Server doesn't reset sticky queue if timeout fired for an outdated workflow task by @Spikhalskiy in #1401
  • Set larger maxInboundMetadataSize to accommodate unbounded Server error messages by @Spikhalskiy in #1397
  • History iteration should never ever fail a workflow execution by @Spikhalskiy in #1404
  • Fix guard clause to allow passing key and cert chain as strings by @yassineb in #1409
  • Deprecate addWorkflowImplementationFactory and give a register* alternative with an expected contract by @Spikhalskiy in #1410
  • Reduce threads churn by increasing pool timeouts by @Spikhalskiy in #1418
  • Reduce contention on workflow cache by @Spikhalskiy in #1419
  • Provide task queue kind in long polls for workflow tasks by @Spikhalskiy in #1420
  • Rework workflow threads reporting from using blocking ThreadPoolExecutor#getActiveThreads by @Spikhalskiy in #1421
  • Each worker now has its own sticky task queue by @Spikhalskiy in #1423
  • Implement executor slots reservation for workflow tasks by @Spikhalskiy in #1431
  • Reduce eagerly executed work needed to create an ActivityStub by @Spikhalskiy in #1434
  • Rework some reflection out of Test Server to help Graal by @Spikhalskiy in #1435
  • Optimize unneeded string concatenation by @Spikhalskiy in #1433
  • Reduce deterministic runner lock reentrance by @Spikhalskiy in #1436
  • Implement dynamic sticky queue polling based on the reported backlog by @Spikhalskiy in #1438
  • Fix MTLS configuration in spring boot autoconfiguration by @yassineb in #1441
  • Add support for Eager Activity Dispatch by @mjameswh in #1439
  • SDK doesn't allow a single WorkflowTask poller and forces the value to '2' if specified by @Spikhalskiy in #1451
  • Fix leaking Eager Activity Reservation by @Spikhalskiy in #1452
  • Refactor WorkflowWorker to put eager activity dispatch in the right place by @Spikhalskiy in #1453
  • Rework WorkflowExecutorCache to remove a global lock by @Spikhalskiy in #1454
  • Limit eager activity dispatch for one workflow task completion by @Spikhalskiy in #1455
  • testing module now brings json-path as a transitive dependency by @Spikhalskiy in #1450
  • Update API protos to 1.12 by @Spikhalskiy in #1461

New Contributors

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

v1.16.0

25 Aug 14:53
d2edb54
Compare
Choose a tag to compare

Highlights

This release brings an experimental Spring Boot module. This is an alpha for a preview and feedback and there are no compatibility guarantees.

Fixes

  • A rare case of a Query that is arriving to a Worker with an outdated meta-information is handled gracefully now (#1371)

What's Changed

  • Port static and jacoco synthetic methods fix from Activity interfaces to Workflows interfaces by @Spikhalskiy in #1356
  • Rework POJOWorkflowMetadata classes, add test coverage, use in Spring Boot by @Spikhalskiy in #1362
  • Upgrade dependencies & code cleanup by @Spikhalskiy in #1355
  • Additional Spring Boot wiring by @Spikhalskiy in #1363
  • Add an ability to register custom DataConverter in Spring Boot Autoconfiguration by @Spikhalskiy in #1372
  • Upgrade protoc for Apple Silicone builds by @Spikhalskiy in #1376
  • Revisit Sprint Boot Readme by @Spikhalskiy in #1379
  • Spring Boot Autoconfiguration doesn't require temporal-testing module to be in classpath anymore by @Spikhalskiy in #1380
  • Refactor WorkflowContext classes by @Spikhalskiy in #1381
  • Specify some standard Spring AutoConfiguration before Temporal ones explicitly by @Spikhalskiy in #1384
  • Switch to using opentelemetry bom and Spring Boot upgrade by @Spikhalskiy in #1385
  • Fix situation when direct query comes outdated (inconsistent) and applied to a more advanced cached workflow instance by @Spikhalskiy in #1375
  • Release v1.16.0 by @Spikhalskiy in #1386

Full Changelog: v1.15.1...v1.16.0

v1.15.1

10 Aug 16:20
3a2eab5
Compare
Choose a tag to compare

Highlights

This release fixes the native distribution of the test server. No changes for java users.

What's Changed

Full Changelog: v1.15.0...v1.15.1

v1.15.0

09 Aug 16:51
74a134d
Compare
Choose a tag to compare

Highlights

This release brings PayloadCodec and Remote Data Converter capabilities to JavaSDK.
GlobalDataConverter got decoupled from DefaultDataConverter.

Fixes

Migration notes

Users which were specifying a Custom Converter globally will get some deprecation warnings to resolve,
which should be trivial like replacing DefaultDataConverter#setDefaultDataConverter with GlobalDataConverter#register

What's Changed

  • Cleanup dead state machines code by @Spikhalskiy in #1302
  • Add tests and javadocs for WorkflowStub#signal by @Spikhalskiy in #1292
  • Make stacktrace query result to be serialized using standard data converter only by @Spikhalskiy in #1304
  • Add initial Spring Boot implementation by @Spikhalskiy in #1305
  • Fix javadoc for WorkflowReusePolicy stating an incorrect default by @Spikhalskiy in #1307
  • Cleanup worker creation for Spring Boot Auto Configuration and add validation of the explicit worker config by @Spikhalskiy in #1308
  • Switch from dependency version ranges to specific versions by @Spikhalskiy in #1314
  • Implement fetching server capabilities before the first server call is made by @Spikhalskiy in #1313
  • Refactor GrpcRetryer to enforce usage of GrpcRetryerOptions by @Spikhalskiy in #1316
  • No retrying on INTERNAL gRPC errors with new Server versions by @Spikhalskiy in #1317
  • Fix Test Server erroneously propagates some timeouts from the parent to the child workflow by @Spikhalskiy in #1320
  • Separate Global DefaultDataConverter and Standard DataConverter notion by @Spikhalskiy in #1327
  • Fix TestActivityEnvironmentInternal#close preventing subsequent usages of the class by @Spikhalskiy in #1329
  • Upgrade Gradle, deps and cleanup duplicated outdated license files by @Spikhalskiy in #1340
  • Upgrade Graal options by @Spikhalskiy in #1343
  • Remote Data Converter & PayloadCodec by @Spikhalskiy in #1330
  • Replays of workflow failures caused by queries don't spam worker logs anymore by @Spikhalskiy in #1351
  • Add Jacoco code-coverage reports generation and aggregation by @Spikhalskiy in #1171
  • Release v1.15.0 by @Spikhalskiy in #1352

Full Changelog: v1.14.0...v1.15.0