Skip to content

Commit 11be7ba

Browse files
committed
Quarkus 3.35.1
1 parent 3a9b01b commit 11be7ba

2 files changed

Lines changed: 152 additions & 2 deletions

File tree

_data/versions.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
quarkus:
2-
version: 3.34.6
3-
announce: /blog/quarkus-3-34-6-released/
2+
version: 3.35.1
3+
announce: /blog/quarkus-3-35-released/
44
graalvm: 'for Java 25'
55
jdk: "17+"
66
maven: 3.9.6+
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
---
2+
layout: post
3+
title: 'Quarkus 3.35 - @Transactional for Hibernate Reactive, PGO for native, JAR tree-shaking, and more'
4+
date: 2026-05-01
5+
tags: release
6+
synopsis: 'We released Quarkus 3.35, which comes with @Transactional support for Hibernate Reactive, Profile-Guided Optimization for native builds, JAR tree-shaking, Semeru AOT support, and several other improvements.'
7+
author: gsmet
8+
---
9+
10+
We're pleased to announce the release of Quarkus 3.35.
11+
12+
This release brings several notable features:
13+
14+
* https://github.com/quarkusio/quarkus/pull/53295[#53295] - JAR tree-shaking to eliminate unused classes
15+
* https://github.com/quarkusio/quarkus/pull/53278[#53278] - Profile-Guided Optimization (PGO) support for native builds
16+
* https://github.com/quarkusio/quarkus/pull/53339[#53339] - Semeru AOT support
17+
* https://github.com/quarkusio/quarkus/pull/51063[#51063] - Support `@Transactional` for Hibernate Reactive
18+
* https://github.com/quarkusio/quarkus/pull/53432[#53432] - CORS support for the management interface
19+
* https://github.com/quarkusio/quarkus/pull/52919[#52919] - Remove the use of System Properties to propagate configuration in tests
20+
* New snapshot distribution infrastructure
21+
22+
== Update
23+
24+
To update to Quarkus 3.35, we recommend updating to the latest version of the Quarkus CLI and run:
25+
26+
[source,bash]
27+
----
28+
quarkus update
29+
----
30+
31+
Note that `quarkus update` can update your applications from any version of Quarkus (including 2.x) to Quarkus 3.35.
32+
33+
For more information about the adjustments you need to make to your applications, please refer to the https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.35[Quarkus 3.35 migration guide].
34+
35+
== What's new?
36+
37+
=== JAR tree-shaking
38+
39+
A new experimental `quarkus.package.jar.tree-shake` option enables build-time dependency tree-shaking.
40+
When set to `classes`, Quarkus performs bytecode reachability analysis to identify and exclude unused classes from runtime dependencies, reducing application JAR size.
41+
42+
The analysis traces references through supertypes, annotations, `ServiceLoader` entries, reflective class loading, and more.
43+
44+
As an example, running tree-shaking on the Quarkus CLI removes over 6,000 unreachable classes, saving around 18 MB (39.5%).
45+
46+
This feature supports `fast-jar`, `uber-jar`, `legacy-jar`, and `aot-jar` packaging types.
47+
48+
As mentioned, this new feature is experimental, and feedback is highly welcome!
49+
50+
=== Profile-guided optimization for native builds
51+
52+
You can now opt in to Profile-Guided Optimization (PGO) for native builds by setting `quarkus.native.pgo.enabled=true`.
53+
54+
Note that PGO is a feature of Oracle GraalVM and is not available in GraalVM Community Edition.
55+
56+
When enabled, Quarkus uses your integration tests as the workload to profile the application.
57+
The resulting PGO data is then fed into the native compilation for better runtime performance.
58+
59+
The implementation follows a similar pattern to the Project Leyden AOT support introduced in Quarkus 3.32.
60+
61+
=== Semeru AOT support
62+
63+
Building on the Project Leyden AOT integration from Quarkus 3.32, Quarkus now also supports IBM Semeru's AOT features.
64+
65+
In initial testing on the `rest-json` quickstart with IBM Semeru Runtime Open Edition 25, startup time was cut roughly in half (from ~380 ms down to ~190 ms).
66+
67+
For now, this is limited to building JARs with Semeru AOT, automatic container image building (as available with Leyden) is not yet supported.
68+
69+
=== `@Transactional` for Hibernate Reactive
70+
71+
Quarkus now supports the `@Transactional` annotation for Hibernate Reactive, thanks to a new `quarkus-reactive-transactions` extension.
72+
73+
This means you can use the familiar `@Transactional` annotation on methods that return `Uni`, and the transaction lifecycle (begin, commit, rollback) will be managed within the reactive pipeline.
74+
75+
A few things to keep in mind:
76+
77+
- Only `TxType.REQUIRED` is currently supported.
78+
- Mixing `@Transactional` with `@WithTransaction` or `@WithSessionOnDemand` is not allowed.
79+
- Methods annotated with `@Transactional` are no longer automatically considered `@Blocking`. If your method is blocking but returns `Uni`, you now need an explicit `@Blocking` annotation. See the https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.35[migration guide] for details.
80+
81+
=== CORS support for the management interface
82+
83+
The management interface now has its own dedicated CORS configuration, allowing you to set CORS policies independently from the main HTTP interface.
84+
85+
=== Testing improvements
86+
87+
The test infrastructure no longer uses System Properties to propagate configuration from Dev Services, Test Resources, and Test Profiles.
88+
This change opens the door for better parallel test execution (which we hope to achieve at some point in the future) and makes the Config system truly immutable.
89+
90+
Tests using `QuarkusDevModeTest`, `QuarkusIntegrationTest`, or `QuarkusMainIntegrationTest` can now declare a `Config` field or method parameter to access the updated configuration.
91+
92+
=== New snapshot distribution
93+
94+
Quarkus snapshots are no longer published to Sonatype, which had reliability issues with the volume of artifacts involved.
95+
Snapshots are now published daily as GitHub Releases in the https://github.com/quarkusio/quarkus-ecosystem-ci/releases[quarkusio/quarkus-ecosystem-ci] repository, with version `999-SNAPSHOT`.
96+
Each release contains a `maven-repo.tar.gz` asset with pre-built Maven artifacts that you can extract into your local Maven repository.
97+
98+
For CI setups, a dedicated https://github.com/quarkusio/install-quarkus-snapshots-action/[GitHub Action] is also available.
99+
100+
More details can be found in the https://github.com/quarkusio/quarkus/blob/main/CONTRIBUTING.md#using-snapshots[Using snapshots] section of the contributing guide.
101+
102+
=== Jackson reflection-free serializers for Quarkus REST
103+
104+
We initially planned to make Jackson reflection-free serializers the default for Quarkus REST in 3.35.
105+
However, thanks to several community members who tested this feature and reported issues, we identified a number of edge cases that still need to be addressed.
106+
We decided to postpone making it the default to 3.36, so that we can fix these issues first.
107+
108+
We are very grateful to everyone who took the time to report problems, your feedback is what makes Quarkus better.
109+
110+
In the meantime, we very much welcome more testing from our community.
111+
You can enable reflection-free serializers by adding the following property to your configuration:
112+
113+
[source,properties]
114+
----
115+
quarkus.rest.jackson.optimization.enable-reflection-free-serializers=true
116+
----
117+
118+
Please report any issues you encounter on https://github.com/quarkusio/quarkus/issues[GitHub].
119+
120+
=== Platform updates
121+
122+
Various Platform components were upgraded including:
123+
124+
- Camel Quarkus to 3.35.0
125+
- Quarkus CXF to 3.35.1 - see release notes for https://docs.quarkiverse.io/quarkus-cxf/dev/release-notes/3.35.0.html[3.35.0] and https://docs.quarkiverse.io/quarkus-cxf/dev/release-notes/3.35.1.html[3.35.1]
126+
- Quarkus Amazon Services to 3.18.0
127+
- Quarkus MCP Server to 1.12.0
128+
- Quarkus Flow to 0.9.0
129+
130+
== Full changelog
131+
132+
You can get the full changelog of https://github.com/quarkusio/quarkus/releases/tag/3.35.0.CR1[3.35.0.CR1], https://github.com/quarkusio/quarkus/releases/tag/3.35.0[3.35.0], and https://github.com/quarkusio/quarkus/releases/tag/3.35.1[3.35.1] on GitHub.
133+
134+
== Contributors
135+
136+
The Quarkus community is growing and has now https://github.com/quarkusio/quarkus/graphs/contributors[1188 contributors].
137+
Many many thanks to each and everyone of them.
138+
139+
In particular for the 3.35 release, thanks to Ales Justin, Alexey Loubyansky, andreatp, Andy Damevin, anuragg-saxenaa, Arseni Buinitski, Aurea Munoz, Aurélien Pupier, Bruno Baptista, brunobat, Carles Arnal, Cesar M. Romero-Pedraza, Chris Laprun, Chris Ruffalo, Clement Escoffier, Cristiano Nicolai, DerFrZocker, Dmitri Bourlatchkov, Faisal Dilawar, Foivos Zakkak, George Gastaldi, Georgios Andrianakis, Guillaume Smet, Holly Cummins, Inaki Villar, Jakub Jedlicka, Jamal Dabari, Jan Martiska, Jens Teglhus Møller, Julien Ponge, Karm Michal Babacek, Katia Aresti, keshavprashatdeshpande, Ladislav Thon, lberrymage, Luca Molteni, marco sappe griot, mariofusco, marko-bekhta, Martin Kouba, Matej Novotny, Matej Vašek, Max Rydahl Andersen, Maximilian Zellhofer, Melloware, Michael Edgar, Michal Maléř, Michal Vavřík, Mihajlo Veljković, Nick Robison, Nico Hinrichs, Ozan Gunalp, Paramvir Jindal, Phillip Kruger, Phillip Krüger, PreetiYadav, Robert Toyonaga, Roberto Cortez, Rolfe Dlugy-Hegwer, Rostislav Svoboda, Sergey Beryozkin, Simon Scatton, Simon Scholz, Stéphane Épardaud, Teymur Babayev, Thomas Segismont, tiwari91, Tiziano Basile, tom, xstefank, Yoann Rodière, and Yoshikazu Nojima.
140+
141+
== Come Join Us
142+
143+
We value your feedback a lot so please report bugs, ask for improvements... Let's build something great together!
144+
145+
If you are a Quarkus user or just curious, don't be shy and join our welcoming community:
146+
147+
* provide feedback on https://github.com/quarkusio/quarkus/issues[GitHub];
148+
* craft some code and https://github.com/quarkusio/quarkus/pulls[push a PR];
149+
* discuss with us on https://quarkusio.zulipchat.com/[Zulip] and on the https://groups.google.com/d/forum/quarkus-dev[mailing list];
150+
* ask your questions on https://stackoverflow.com/questions/tagged/quarkus[Stack Overflow].

0 commit comments

Comments
 (0)