Skip to content

Commit

Permalink
Sync documentation of main branch
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Jun 13, 2023
1 parent 494bbf6 commit 393de61
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 21 deletions.
40 changes: 20 additions & 20 deletions _data/versioned/main/index/quarkus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ types:
- title: Authorization of web endpoints
filename: security-authorize-web-endpoints-reference.adoc
summary: Quarkus has an integrated pluggable web security layer.
categories: "web, security"
categories: "security, web"
id: security-authorize-web-endpoints-reference
type: reference
url: /guides/security-authorize-web-endpoints-reference
Expand All @@ -18,7 +18,7 @@ types:
- title: Command Mode Applications
filename: command-mode-reference.adoc
summary: This reference guide explains how to develop command line applications with Quarkus.
categories: "command-line, core"
categories: "core, command-line"
type: reference
url: /guides/command-mode-reference
- title: Configuration Reference Guide
Expand Down Expand Up @@ -131,14 +131,14 @@ types:
- title: Authentication mechanisms in Quarkus
filename: security-authentication-mechanisms-concept.adoc
summary: "The Quarkus Security framework supports multiple authentication mechanisms, which you can use to secure your applications."
categories: "web, security"
categories: "security, web"
id: security-authentication-mechanisms-concept
type: concepts
url: /guides/security-authentication-mechanisms-concept
- title: Basic authentication
filename: security-basic-authentication-concept.adoc
summary: HTTP Basic authentication is one of the least resource-demanding techniques that enforce access controls to web resources.
categories: "web, security"
categories: "security, web"
id: security-basic-authentication-concept
type: concepts
url: /guides/security-basic-authentication-concept
Expand All @@ -152,21 +152,21 @@ types:
- title: OpenID Connect (OIDC) Bearer authentication
filename: security-oidc-bearer-token-authentication-concept.adoc
summary: Secure HTTP access to Jakarta REST (formerly known as JAX-RS) endpoints in your application with Bearer authentication by using the Quarkus OpenID Connect (OIDC) extension.
categories: "web, security"
categories: "security, web"
id: security-oidc-bearer-token-authentication-concept
type: concepts
url: /guides/security-oidc-bearer-token-authentication-concept
- title: OpenID Connect authorization code flow mechanism for protecting web applications
filename: security-oidc-code-flow-authentication-concept.adoc
summary: "To protect your web applications, you can use the authorization code flow mechanism provided by the Quarkus OpenID Connect (OIDC) extension."
categories: "web, security"
categories: "security, web"
id: security-oidc-code-flow-authentication-concept
type: concepts
url: /guides/security-oidc-code-flow-authentication-concept
- title: Proactive authentication
filename: security-proactive-authentication-concept.adoc
summary: Proactive authentication is enabled in Quarkus by default.
categories: "web, security"
categories: "security, web"
id: security-proactive-authentication-concept
type: concepts
url: /guides/security-proactive-authentication-concept
Expand Down Expand Up @@ -243,7 +243,7 @@ types:
- title: Configure data sources in Quarkus
filename: datasource.adoc
summary: Use a unified configuration model to define datasources for Java Database Connectivity (JDBC) and Reactive drivers.
categories: "getting-started, data, reactive"
categories: "getting-started, reactive, data"
id: datasources
type: tutorial
url: /guides/datasource
Expand Down Expand Up @@ -276,7 +276,7 @@ types:
- title: Protect a web application by using OpenID Connect (OIDC) authorization code flow
filename: security-oidc-code-flow-authentication-tutorial.adoc
summary: "With the Quarkus OpenID Connect (OIDC) extension, you can protect application HTTP endpoints by using the OIDC Authorization Code Flow mechanism."
categories: "web, security"
categories: "security, web"
id: security-oidc-code-flow-authentication-tutorial
type: tutorial
url: /guides/security-oidc-code-flow-authentication-tutorial
Expand All @@ -289,7 +289,7 @@ types:
- title: Secure a Quarkus application with Basic authentication and Jakarta Persistence
filename: security-basic-authentication-tutorial.adoc
summary: Secure your Quarkus application endpoints by combining the built-in Quarkus Basic authentication with the Jakarta Persistence identity provider to enable role-based access control (RBAC).
categories: "getting-started, security"
categories: "security, getting-started"
id: security-basic-authentication-tutorial
type: tutorial
url: /guides/security-basic-authentication-tutorial
Expand Down Expand Up @@ -345,7 +345,7 @@ types:
- title: AppCDS
filename: appcds.adoc
summary: This reference guide explains how to enable AppCDS with Quarkus.
categories: "cloud, core"
categories: "core, cloud"
type: guide
url: /guides/appcds
- title: Application Data Caching
Expand Down Expand Up @@ -484,7 +484,7 @@ types:
- title: Deploying on OpenShift
filename: deploying-to-openshift.adoc
summary: This guide covers how to deploy a native application on OpenShift.
categories: "native, cloud"
categories: "cloud, native"
id: deploy-openshift
type: guide
url: /guides/deploying-to-openshift
Expand Down Expand Up @@ -751,7 +751,7 @@ types:
- title: Kubernetes extension
filename: deploying-to-kubernetes.adoc
summary: This guide covers how to deploy a native application on Kubernetes.
categories: "native, cloud"
categories: "cloud, native"
id: deploy-kubernetes
type: guide
url: /guides/deploying-to-kubernetes
Expand Down Expand Up @@ -961,7 +961,7 @@ types:
- title: Simplified Hibernate ORM with Panache and Kotlin
filename: hibernate-orm-panache-kotlin.adoc
summary: This explains the specifics of using Hibernate ORM with Panache in a Kotlin project.
categories: "data, alt-languages"
categories: "alt-languages, data"
type: guide
url: /guides/hibernate-orm-panache-kotlin
- title: Simplified Hibernate Reactive with Panache
Expand All @@ -979,13 +979,13 @@ types:
- title: Simplified MongoDB with Panache and Kotlin
filename: mongodb-panache-kotlin.adoc
summary: This guide covers the usage of MongoDB using active records and repositories in a Kotlin project.
categories: "data, alt-languages"
categories: "alt-languages, data"
type: guide
url: /guides/mongodb-panache-kotlin
- title: SmallRye Fault Tolerance
filename: smallrye-fault-tolerance.adoc
summary: This guide demonstrates how your Quarkus application can utilize the SmallRye Fault Tolerance specification through the SmallRye Fault Tolerance extension.
categories: "web, observability"
categories: "observability, web"
type: guide
url: /guides/smallrye-fault-tolerance
- title: SmallRye GraphQL
Expand Down Expand Up @@ -1015,14 +1015,14 @@ types:
- title: Testing Your Application
filename: getting-started-testing.adoc
summary: "This guide covers testing in JVM mode, native mode, and injection of resources into tests"
categories: "tooling, native, core"
categories: "tooling, core, native"
id: testing
type: guide
url: /guides/getting-started-testing
- title: Tips for writing native applications
filename: writing-native-applications-tips.adoc
summary: This guide is a collection of tips to help you solve the problems you encounter when compiling applications to native executable.
categories: "native, core, writing-extensions"
categories: "writing-extensions, core, native"
type: guide
url: /guides/writing-native-applications-tips
- title: Update projects to the latest version of Quarkus
Expand Down Expand Up @@ -1158,7 +1158,7 @@ types:
- title: Using SSL With Native Executables
filename: native-and-ssl.adoc
summary: "In this guide, we will discuss how you can get your native images to support SSL, as native images don't support it out of the box."
categories: "native, security, core"
categories: "security, core, native"
type: guide
url: /guides/native-and-ssl
- title: Using Security with .properties File
Expand Down Expand Up @@ -1265,7 +1265,7 @@ types:
- title: Validation with Hibernate Validator
filename: validation.adoc
summary: This guide covers how to use Hibernate Validator/Bean Validation in your REST services.
categories: "web, data"
categories: "data, web"
type: guide
url: /guides/validation
- title: Writing JSON REST Services
Expand Down
3 changes: 3 additions & 0 deletions _generated-doc/main/config/quarkus-all-build-items.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1375,6 +1375,9 @@ a| `Config config` :: +++<i>No Javadoc found</i>+++
a| https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/spi/src/main/java/io/quarkus/kubernetes/client/spi/KubernetesClientCapabilityBuildItem.java[`io.quarkus.kubernetes.client.spi.KubernetesClientCapabilityBuildItem`, window="_blank"] :: +++<i>No Javadoc found</i>+++
a| `boolean generateRbac` :: +++<i>No Javadoc found</i>+++
a| https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/spi/src/main/java/io/quarkus/kubernetes/client/spi/KubernetesResourcesBuildItem.java[`io.quarkus.kubernetes.client.spi.KubernetesResourcesBuildItem`, window="_blank"] :: +++<i>No Javadoc found</i>+++
a| `String[] resourceClasses` :: +++<i>No Javadoc found</i>+++
|===
== Kubernetes Service Binding - SPI
[%header,cols=2*]
Expand Down
2 changes: 1 addition & 1 deletion _versions/main/guides/_includes/devtools/create-app.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ _For more information about how to install the Quarkus CLI and use it, please re
----
mvn {quarkus-platform-groupid}:quarkus-maven-plugin:{quarkus-version}:create \
ifdef::create-app-stream[]
-DplatformVersion={create-app-stream} \
-DplatformVersion={quarkus-version} \
endif::[]
-DprojectGroupId={create-app-group-id} \
ifdef::create-app-extensions[]
Expand Down
43 changes: 43 additions & 0 deletions _versions/main/guides/kubernetes-client.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ In dev mode and when running tests, xref:kubernetes-dev-services.adoc[Dev Servic

Quarkus provides multiple integration points for influencing the Kubernetes Client provided as a CDI bean.

==== Kubernetes Client Config customization

The first integration point is the use of the `io.quarkus.kubernetes.client.KubernetesConfigCustomizer` interface. When such a bean exists,
it allows for arbitrary customizations of the `io.fabric8.kubernetes.client.Config` created by Quarkus (which takes into account the `quarkus.kubernetes-client.*` properties).

Expand All @@ -82,6 +84,47 @@ public class KubernetesClientProducer {
}
----

==== Kubernetes Client ObjectMapper customization

The Fabric8 Kubernetes Client uses its own `ObjectMapper` instance for serialization and deserialization of Kubernetes resources.
This mapper is provided to the client through a `KubernetesSerialization` instance that's injected into
the `KubernetesClient` bean.

If for some reason you must customize the default `ObjectMapper` bean provided by this extension and used by the Kubernetes Client, you can do so by declaring a bean that implements the `KubernetesClientObjectMapperCustomizer` interface.

The following code snippet contains an example of a `KubernetesClientObjectMapperCustomizer` to set the `ObjectMapper` locale:

[source,java]
----
@Singleton
public static class Customizer implements KubernetesClientObjectMapperCustomizer {
@Override
public void customize(ObjectMapper objectMapper) {
objectMapper.setLocale(Locale.ROOT);
}
}
----

Furthermore, if you must replace the default `ObjectMapper` bean used by the Kubernetes Client that the extension creates automatically, you can do so by declaring a bean of type `@KubernetesClientObjectMapper`.
The following code snippet shows how you can declare this bean:

[source,java]
----
@Singleton
public class KubernetesObjectMapperProducer {
@KubernetesClientObjectMapper
@Singleton
@Produces
public ObjectMapper kubernetesClientObjectMapper() {
return new ObjectMapper();
}
}
----


WARNING: The static `io.fabric8.kubernetes.client.utils.Serialization` utils class is deprecated and should not be used.
Access to `Serialization.jsonMapper()` should be replaced by the usage of @KubernetesClientObjectMapperCustomizer` declared beans.

== Testing

To make testing against a mock Kubernetes API extremely simple, Quarkus provides the `WithKubernetesTestServer` annotation which automatically launches
Expand Down
55 changes: 55 additions & 0 deletions _versions/main/guides/reactive-sql-clients.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,10 @@ A typical configuration with several connections would look like:
----
quarkus.datasource.reactive.url=postgresql://host1:5432/default,postgresql://host2:5432/default,postgresql://host3:5432/default
----

This can also be written with indexed property syntax:

[source,properties]
----
quarkus.datasource.reactive.url[0]=postgresql://host1:5432/default
quarkus.datasource.reactive.url[1]=postgresql://host2:5432/default
Expand Down Expand Up @@ -771,6 +774,58 @@ public class CustomPgPoolCreator implements PgPoolCreator {
}
----

== Pipelining

The PostgreSQL and MariaDB/MySQL clients support pipelining of queries at the connection level.
The feature consists in sending multiple queries on the same database connection without waiting for the corresponding responses.

In some use cases, query pipelining can improve database access performance.

Here's an example for PostgreSQL:

[source,java]
----
import jakarta.inject.Inject;
import io.smallrye.mutiny.Uni;
import io.vertx.mutiny.pgclient.PgPool;
public class PipeliningExample {
@Inject
PgPool client;
public Uni<String> favoriteFruitAndVegetable() {
// Explicitely acquire a connection
return client.withConnection(conn -> {
Uni<String> favoriteFruit = conn.query("SELECT name FROM fruits WHERE preferred IS TRUE").execute()
.onItem().transform(rows -> rows.iterator().next().getString("name"));
Uni<String> favoriteVegetable = conn.query("SELECT name FROM vegetables WHERE preferred IS TRUE").execute()
.onItem().transform(rows -> rows.iterator().next().getString("name"));
// favoriteFruit and favoriteVegetable unis will be subscribed at the same time
return Uni.combine().all().unis(favoriteFruit, favoriteVegetable)
.combinedWith(PipeliningExample::formatMessage);
});
}
private static String formatMessage(String fruit, String vegetable) {
return String.format("The favorite fruit is %s and the favorite vegetable is %s", fruit, vegetable);
}
}
----

The maximum number of pipelined queries is configured with the `pipelining-limit` property:

[source,properties]
----
# For PostgreSQL
quarkus.datasource.reactive.postgresql.pipelining-limit=256
# For MariaDB/MySQL
quarkus.datasource.reactive.mysql.pipelining-limit=256
----

By default, `pipelining-limit` is set to 256.

== Configuration Reference

=== Common Datasource
Expand Down

0 comments on commit 393de61

Please sign in to comment.