Skip to content

Commit e2d42f4

Browse files
committed
Sync documentation of main branch
1 parent 7877101 commit e2d42f4

11 files changed

+135
-15
lines changed

_generated-doc/main/config/quarkus-all-config.adoc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83190,10 +83190,17 @@ endif::add-copy-button-to-config-props[]
8319083190

8319183191
[.description]
8319283192
--
83193-
The max HTTP chunk size (8096 bytes by default).
83193+
Configures two different things:
83194+
83195+
- The max HTTP chunk size
83196+
- The size of the chunk to be read when an `InputStream` is being used as an input
83197+
83198+
8319483199

8319583200
Can be overwritten by client-specific settings.
8319683201

83202+
This property is not applicable to the RESTEasy Client.
83203+
8319783204

8319883205
ifdef::add-copy-button-to-env-var[]
8319983206
Environment variable: env_var_with_copy_button:+++QUARKUS_REST_CLIENT_MAX_CHUNK_SIZE+++[]
@@ -84109,7 +84116,12 @@ endif::add-copy-button-to-config-props[]
8410984116

8411084117
[.description]
8411184118
--
84112-
The max HTTP chunk size (8096 bytes by default).
84119+
Configures two different things:
84120+
84121+
- The max HTTP chunk size
84122+
- The size of the chunk to be read when an `InputStream` is being read and sent to the server
84123+
84124+
8411384125

8411484126
This property is not applicable to the RESTEasy Client.
8411584127

_generated-doc/main/config/quarkus-rest-client-config.adoc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,10 +696,17 @@ endif::add-copy-button-to-config-props[]
696696

697697
[.description]
698698
--
699-
The max HTTP chunk size (8096 bytes by default).
699+
Configures two different things:
700+
701+
- The max HTTP chunk size
702+
- The size of the chunk to be read when an `InputStream` is being used as an input
703+
704+
700705

701706
Can be overwritten by client-specific settings.
702707

708+
This property is not applicable to the RESTEasy Client.
709+
703710

704711
ifdef::add-copy-button-to-env-var[]
705712
Environment variable: env_var_with_copy_button:+++QUARKUS_REST_CLIENT_MAX_CHUNK_SIZE+++[]
@@ -1615,7 +1622,12 @@ endif::add-copy-button-to-config-props[]
16151622

16161623
[.description]
16171624
--
1618-
The max HTTP chunk size (8096 bytes by default).
1625+
Configures two different things:
1626+
1627+
- The max HTTP chunk size
1628+
- The size of the chunk to be read when an `InputStream` is being read and sent to the server
1629+
1630+
16191631

16201632
This property is not applicable to the RESTEasy Client.
16211633

_generated-doc/main/config/quarkus-rest-client-config_quarkus.rest-client.adoc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,10 +696,17 @@ endif::add-copy-button-to-config-props[]
696696

697697
[.description]
698698
--
699-
The max HTTP chunk size (8096 bytes by default).
699+
Configures two different things:
700+
701+
- The max HTTP chunk size
702+
- The size of the chunk to be read when an `InputStream` is being used as an input
703+
704+
700705

701706
Can be overwritten by client-specific settings.
702707

708+
This property is not applicable to the RESTEasy Client.
709+
703710

704711
ifdef::add-copy-button-to-env-var[]
705712
Environment variable: env_var_with_copy_button:+++QUARKUS_REST_CLIENT_MAX_CHUNK_SIZE+++[]
@@ -1615,7 +1622,12 @@ endif::add-copy-button-to-config-props[]
16151622

16161623
[.description]
16171624
--
1618-
The max HTTP chunk size (8096 bytes by default).
1625+
Configures two different things:
1626+
1627+
- The max HTTP chunk size
1628+
- The size of the chunk to be read when an `InputStream` is being read and sent to the server
1629+
1630+
16191631

16201632
This property is not applicable to the RESTEasy Client.
16211633

_generated-doc/main/infra/quarkus-all-build-items.adoc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,17 @@ _No Javadoc found_
200200

201201

202202

203+
a| https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/sbom/ApplicationManifestsBuildItem.java[`io.quarkus.deployment.sbom.ApplicationManifestsBuildItem`, window="_blank"]
204+
[.description]
205+
--
206+
Application manifests collected in a build
207+
-- a|`java.util.Collection<ApplicationManifest> manifests`
208+
209+
_No Javadoc found_
210+
211+
212+
213+
203214
a| https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/builditem/ApplicationStartBuildItem.java[`io.quarkus.deployment.builditem.ApplicationStartBuildItem`, window="_blank"]
204215
[.description]
205216
--

_versions/main/guides/building-my-first-extension.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ Your extension is a multi-module project. So let's start by checking out the par
171171
<module>runtime</module>
172172
</modules>
173173
<properties>
174-
<compiler-plugin.version>3.13.0</compiler-plugin.version><!--2-->
174+
<compiler-plugin.version>3.14.0</compiler-plugin.version><!--2-->
175175
<failsafe-plugin.version>${surefire-plugin.version}</failsafe-plugin.version>
176176
<maven.compiler.release>17</maven.compiler.release>
177177
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -872,7 +872,7 @@ $ mvn quarkus:dev
872872
[INFO] Building greeting-app 1.0.0-SNAPSHOT
873873
[INFO] --------------------------------[ jar ]---------------------------------
874874
[INFO]
875-
[INFO] --- maven-compiler-plugin:3.13.0:compile (default-compile) @ greeting-app ---
875+
[INFO] --- maven-compiler-plugin:3.14.0:compile (default-compile) @ greeting-app ---
876876
[INFO] Nothing to compile - all classes are up to date
877877
[INFO]
878878
[INFO] --- quarkus-maven-plugin:{quarkus-version}:dev (default-cli) @ greeting-app ---

_versions/main/guides/building-native-image.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ Sample Dockerfile for building with Gradle:
644644
## Stage 1 : build with maven builder image with native capabilities
645645
FROM quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:{mandrel-flavor} AS build
646646
USER root
647-
RUN microdnf install findutils
647+
RUN microdnf install findutils -y
648648
COPY --chown=quarkus:quarkus gradlew /code/gradlew
649649
COPY --chown=quarkus:quarkus gradle /code/gradle
650650
COPY --chown=quarkus:quarkus build.gradle /code/
@@ -730,7 +730,7 @@ Sample multistage Dockerfile for building an image from `scratch`:
730730
## Stage 1 : build with maven builder image with native capabilities
731731
FROM quay.io/quarkus/ubi9-quarkus-graalvmce-builder-image:{graalvm-flavor} AS build
732732
USER root
733-
RUN microdnf install make gcc
733+
RUN microdnf install make gcc -y
734734
COPY --chown=quarkus:quarkus mvnw /code/mvnw
735735
COPY --chown=quarkus:quarkus .mvn /code/.mvn
736736
COPY --chown=quarkus:quarkus pom.xml /code/

_versions/main/guides/hibernate-orm.adoc

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@ as it will also clone some enhancement-specific fields that are specific to the
10081008
This limitation might be removed in the future.
10091009
====
10101010

1011+
[[automatic-integration]]
10111012
=== Automatic integration
10121013

10131014
Transaction Manager integration::
@@ -1265,6 +1266,9 @@ With this approach, all datasources used by the same persistence unit
12651266
are assumed to point to a database of the same vendor (same `db-kind`) and version.
12661267
12671268
Mismatches will not be detected, and may result in unpredictable behavior.
1269+
1270+
The list of datasources is defined at build time, so with this approach the **list** of tenants is **fixed at build time**.
1271+
If the list of tenants needs to change at runtime, you must <<programmatically-resolving-tenants-connections,resolve the tenant connections programmatically>>.
12681272
====
12691273

12701274
[source,properties]
@@ -1367,6 +1371,61 @@ and annotating it with `@PersistenceUnitExtension` (or `@PersistenceUnitExtensio
13671371
will replace the current Quarkus default implementation `io.quarkus.hibernate.orm.runtime.tenant.DataSourceTenantConnectionResolver`.
13681372
Your custom connection resolver would allow for example to read tenant information from a database and create a connection per tenant at runtime based on it.
13691373

1374+
[CAUTION]
1375+
====
1376+
<<automatic-integration,Automatic integrations>> will **not** work with programmatically-created `ConnectionProvider`.
1377+
This implies all these integrations, including those from other Quarkus modules (e.g. xref:smallrye-health.adoc[SmallRye Health]) must be done manually.
1378+
====
1379+
1380+
Here is an implementation example of a `TenantConnectionResolver` implementation using standard Quarkus technologies – Agroal for pooling and Narayana for transactions:
1381+
1382+
[source,java]
1383+
----
1384+
@ApplicationScoped
1385+
@PersistenceUnitExtension
1386+
public class ExampleTenantConnectionResolver implements TenantConnectionResolver {
1387+
1388+
private final jakarta.transaction.TransactionManager transactionManager;
1389+
private final TransactionSynchronizationRegistry transactionSynchronizationRegistry;
1390+
1391+
public ExampleTenantConnectionResolver(
1392+
TransactionManager transactionManager,
1393+
TransactionSynchronizationRegistry transactionSynchronizationRegistry) {
1394+
this.transactionManager = transactionManager;
1395+
this.transactionSynchronizationRegistry = transactionSynchronizationRegistry;
1396+
}
1397+
1398+
@Override
1399+
public ConnectionProvider resolve(String tenantId) {
1400+
// Use your own ConnectionProvider implementation here
1401+
return new YourOwnCustomConnectionProviderImpl(createDatasource(tenantId));
1402+
}
1403+
1404+
private AgroalDataSource createDatasource(String tenantId) {
1405+
try {
1406+
final var txIntegration = new NarayanaTransactionIntegration(
1407+
transactionManager, transactionSynchronizationRegistry, null, false, null);
1408+
// Fetch JDBC URL, username, password & other values from a per-tenant dynamic source
1409+
final var dataSourceConfig = new AgroalDataSourceConfigurationSupplier()
1410+
.connectionPoolConfiguration(pc -> pc.initialSize(2)
1411+
.maxSize(10)
1412+
.minSize(2)
1413+
.maxLifetime(Duration.of(5, ChronoUnit.MINUTES))
1414+
.acquisitionTimeout(Duration.of(30, ChronoUnit.SECONDS))
1415+
.transactionIntegration(txIntegration)
1416+
.connectionFactoryConfiguration(
1417+
cf -> cf.jdbcUrl("jdbc:postgresql://postgres:5432/" + tenantId)
1418+
.credential(new NamePrincipal(username))
1419+
.credential(new SimplePassword(password))));
1420+
return AgroalDataSource.from(dataSourceConfig.get());
1421+
} catch (SQLException ex) {
1422+
throw new IllegalStateException(
1423+
"Failed to create a new data source based on the existing datasource configuration", ex);
1424+
}
1425+
}
1426+
}
1427+
----
1428+
13701429
[[interceptors]]
13711430
== Interceptors
13721431

_versions/main/guides/jreleaser.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ As a reference, these are the full contents of the `pom.xml`:
635635
<properties>
636636
<executable-suffix/>
637637
<distribution.directory>${project.build.directory}/distributions</distribution.directory>
638-
<compiler-plugin.version>3.13.0</compiler-plugin.version>
638+
<compiler-plugin.version>3.14.0</compiler-plugin.version>
639639
<maven.compiler.parameters>true</maven.compiler.parameters>
640640
<maven.compiler.source>17</maven.compiler.source>
641641
<maven.compiler.target>17</maven.compiler.target>

_versions/main/guides/quarkus-runtime-base-image.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ In this case, you need to use a multi-stage `dockerfile` to copy the required li
3939
----
4040
# First stage - install the dependencies in an intermediate container
4141
FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5 as BUILD
42-
RUN microdnf install freetype
42+
RUN microdnf install freetype -y
4343
4444
# Second stage - copy the dependencies
4545
FROM quay.io/quarkus/ubi9-quarkus-micro-image:2.0
@@ -61,7 +61,7 @@ If you need to have access to the full AWT support, you need more than just `lib
6161
----
6262
# First stage - install the dependencies in an intermediate container
6363
FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5 as BUILD
64-
RUN microdnf install freetype fontconfig
64+
RUN microdnf install freetype fontconfig -y
6565
6666
# Second stage - copy the dependencies
6767
FROM quay.io/quarkus/ubi9-quarkus-micro-image:2.0

_versions/main/guides/rest.adoc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1627,6 +1627,20 @@ public User userPrivate() {
16271627
When the result of the `userPublic` method is serialized, the `id` field will not be contained in the response as the `Public` view does not include it.
16281628
The result of `userPrivate` however will include the `id` as expected when serialized.
16291629

1630+
`@JsonView` is also supported for deserializing the request body. So for example in the following code:
1631+
1632+
[source,java]
1633+
----
1634+
@POST
1635+
@Produces(MediaType.APPLICATION_JSON)
1636+
@Consumes(MediaType.APPLICATION_JSON)
1637+
public RestResponse<User> create(@JsonView(Views.Public.class) User user) {
1638+
return RestResponse.status(CREATED, user);
1639+
}
1640+
----
1641+
1642+
inside the `create` method, `user` would only contain the value of `name` while `id` would always be `null` (regardless if the JSON request contained it)
1643+
16301644
===== Reflection-free Jackson serialization and deserialization
16311645

16321646
By default, Jackson uses reflection to convert objects to and from JSON.

0 commit comments

Comments
 (0)