Skip to content

Commit 0d6f6e8

Browse files
committed
Sync documentation of main branch
1 parent b1f9a7a commit 0d6f6e8

10 files changed

+130
-10
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"configDocKey":{"type":"io.quarkus.deployment.execannotations.ExecutionModelAnnotationsConfig.Mode","key":"quarkus.execution-model-annotations.detection-mode","additionalKeys":[],"configDoc":"Detection mode of invalid usage of execution model annotations.\n\nAn execution model annotation is `@Blocking`, `@NonBlocking` and `@RunOnVirtualThread`. These annotations may only be used on \"entrypoint\" methods (methods invoked by various frameworks in Quarkus); using them on methods that can only be invoked by application code is invalid.","withinAMap":false,"defaultValue":"fail","javaDocSiteLink":"","docMapKey":"detection-mode","configPhase":"BUILD_TIME","acceptedValues":["`fail`","`warn`","`disabled`"],"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.execution-model-annotations","enum":true}}]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.quarkus.deployment.execannotations.ExecutionModelAnnotationsConfig

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,9 @@ a| `String groupId` :: +++<i>No Javadoc found</i>+++
225225
`String artifactId` :: +++<i>No Javadoc found</i>+++
226226
`Optional classifier` :: +++<i>No Javadoc found</i>+++
227227
228+
a| https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/execannotations/ExecutionModelAnnotationsAllowedBuildItem.java[`io.quarkus.deployment.execannotations.ExecutionModelAnnotationsAllowedBuildItem`, window="_blank"] :: +++Carries a predicate that identifies methods that can have annotations which affect the execution model ( , , ). <p> Used to detect wrong usage of these annotations, as they are implemented directly by the various frameworks and may only be put on "entrypoint" methods. Placing these annotations on methods that can only be invoked by application code is always wrong.+++
229+
a| `Predicate predicate` :: +++<i>No Javadoc found</i>+++
230+
228231
a| https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/builditem/ExecutorBuildItem.java[`io.quarkus.deployment.builditem.ExecutorBuildItem`, window="_blank"] :: +++The main executor for blocking tasks.+++
229232
a| `ScheduledExecutorService executor` :: +++<i>No Javadoc found</i>+++
230233
@@ -2095,6 +2098,13 @@ a| `Class provider` :: +++<i>No Javadoc found</i>+++
20952098
a| https://github.com/quarkusio/quarkus/blob/main/extensions/smallrye-fault-tolerance/deployment/src/main/java/io/quarkus/smallrye/faulttolerance/deployment/devui/FaultToleranceInfoBuildItem.java[`io.quarkus.smallrye.faulttolerance.deployment.devui.FaultToleranceInfoBuildItem`, window="_blank"] :: +++<i>No Javadoc found</i>+++
20962099
a| `int guardedMethods` :: +++<i>No Javadoc found</i>+++
20972100
2101+
|===
2102+
== SmallRye GraphQL Client
2103+
[%header,cols=2*]
2104+
|===
2105+
|Class Name |Attributes
2106+
a| https://github.com/quarkusio/quarkus/blob/main/extensions/smallrye-graphql-client/deployment/src/main/java/io/quarkus/smallrye/graphql/client/deployment/GraphQLClientConfigInitializedBuildItem.java[`io.quarkus.smallrye.graphql.client.deployment.GraphQLClientConfigInitializedBuildItem`, window="_blank"] :: +++This marks that the SmallRye GraphQL Client configurations have been processed and initialized.+++
2107+
a| None
20982108
|===
20992109
== SmallRye Health - SPI
21002110
[%header,cols=2*]

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52579,6 +52579,26 @@ endif::add-copy-button-to-env-var[]
5257952579
|
5258052580

5258152581

52582+
a|icon:lock[title=Fixed at build time] [[quarkus-core_quarkus.execution-model-annotations.detection-mode]]`link:#quarkus-core_quarkus.execution-model-annotations.detection-mode[quarkus.execution-model-annotations.detection-mode]`
52583+
52584+
52585+
[.description]
52586+
--
52587+
Detection mode of invalid usage of execution model annotations.
52588+
52589+
An execution model annotation is `@Blocking`, `@NonBlocking` and `@RunOnVirtualThread`. These annotations may only be used on "entrypoint" methods (methods invoked by various frameworks in Quarkus); using them on methods that can only be invoked by application code is invalid.
52590+
52591+
ifdef::add-copy-button-to-env-var[]
52592+
Environment variable: env_var_with_copy_button:+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++[]
52593+
endif::add-copy-button-to-env-var[]
52594+
ifndef::add-copy-button-to-env-var[]
52595+
Environment variable: `+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++`
52596+
endif::add-copy-button-to-env-var[]
52597+
-- a|
52598+
`fail`, `warn`, `disabled`
52599+
|`fail`
52600+
52601+
5258252602
a|icon:lock[title=Fixed at build time] [[quarkus-core_quarkus.ide.target]]`link:#quarkus-core_quarkus.ide.target[quarkus.ide.target]`
5258352603

5258452604

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,26 @@ endif::add-copy-button-to-env-var[]
914914
|
915915

916916

917+
a|icon:lock[title=Fixed at build time] [[quarkus-core_quarkus.execution-model-annotations.detection-mode]]`link:#quarkus-core_quarkus.execution-model-annotations.detection-mode[quarkus.execution-model-annotations.detection-mode]`
918+
919+
920+
[.description]
921+
--
922+
Detection mode of invalid usage of execution model annotations.
923+
924+
An execution model annotation is `@Blocking`, `@NonBlocking` and `@RunOnVirtualThread`. These annotations may only be used on "entrypoint" methods (methods invoked by various frameworks in Quarkus); using them on methods that can only be invoked by application code is invalid.
925+
926+
ifdef::add-copy-button-to-env-var[]
927+
Environment variable: env_var_with_copy_button:+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++[]
928+
endif::add-copy-button-to-env-var[]
929+
ifndef::add-copy-button-to-env-var[]
930+
Environment variable: `+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++`
931+
endif::add-copy-button-to-env-var[]
932+
-- a|
933+
`fail`, `warn`, `disabled`
934+
|`fail`
935+
936+
917937
a|icon:lock[title=Fixed at build time] [[quarkus-core_quarkus.ide.target]]`link:#quarkus-core_quarkus.ide.target[quarkus.ide.target]`
918938

919939

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
:summaryTableId: quarkus-execution-model-annotations-execannotations-execution-model-annotations-config
3+
[.configuration-legend]
4+
icon:lock[title=Fixed at build time] Configuration property fixed at build time - All other configuration properties are overridable at runtime
5+
[.configuration-reference, cols="80,.^10,.^10"]
6+
|===
7+
8+
h|[[quarkus-execution-model-annotations-execannotations-execution-model-annotations-config_configuration]]link:#quarkus-execution-model-annotations-execannotations-execution-model-annotations-config_configuration[Configuration property]
9+
10+
h|Type
11+
h|Default
12+
13+
a|icon:lock[title=Fixed at build time] [[quarkus-execution-model-annotations-execannotations-execution-model-annotations-config_quarkus.execution-model-annotations.detection-mode]]`link:#quarkus-execution-model-annotations-execannotations-execution-model-annotations-config_quarkus.execution-model-annotations.detection-mode[quarkus.execution-model-annotations.detection-mode]`
14+
15+
16+
[.description]
17+
--
18+
Detection mode of invalid usage of execution model annotations.
19+
20+
An execution model annotation is `@Blocking`, `@NonBlocking` and `@RunOnVirtualThread`. These annotations may only be used on "entrypoint" methods (methods invoked by various frameworks in Quarkus); using them on methods that can only be invoked by application code is invalid.
21+
22+
ifdef::add-copy-button-to-env-var[]
23+
Environment variable: env_var_with_copy_button:+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++[]
24+
endif::add-copy-button-to-env-var[]
25+
ifndef::add-copy-button-to-env-var[]
26+
Environment variable: `+++QUARKUS_EXECUTION_MODEL_ANNOTATIONS_DETECTION_MODE+++`
27+
endif::add-copy-button-to-env-var[]
28+
-- a|
29+
`fail`, `warn`, `disabled`
30+
|`fail`
31+
32+
|===

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ COPY --chown=quarkus:quarkus pom.xml /code/
705705
RUN mkdir /musl && \
706706
curl -L -o musl.tar.gz https://more.musl.cc/11.2.1/x86_64-linux-musl/x86_64-linux-musl-native.tgz && \
707707
tar -xvzf musl.tar.gz -C /musl --strip-components 1 && \
708-
curl -L -o zlib.tar.gz https://www.zlib.net/zlib-1.2.13.tar.gz && \
708+
curl -L -o zlib.tar.gz https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz && \
709709
mkdir zlib && tar -xvzf zlib.tar.gz -C zlib --strip-components 1 && \
710710
cd zlib && ./configure --static --prefix=/musl && \
711711
make && make install && \

_versions/main/guides/security-oidc-code-flow-authentication.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,11 @@ quarkus.oidc.introspection-credentials.name=introspection-user-name
279279
quarkus.oidc.introspection-credentials.secret=introspection-user-secret
280280
----
281281

282+
[[oidc-client-filters]]
283+
==== OIDC client request customization
284+
285+
You can customize OIDC client requests by registering one or more `OidcClientRequestFiler` implementations which can update or add new request headers, please see xref:security-openid-connect-client-reference#oidc-client-filters[Client request customization] for more information.
286+
282287
==== Redirecting to and from the OIDC provider
283288

284289
When a user is redirected to the OpenID Connect provider to authenticate, the redirect URL includes a `redirect_uri` query parameter, which indicates to the provider where the user has to be redirected to when the authentication is complete.

_versions/main/guides/security-openid-connect-client-reference.adoc

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,42 @@ quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientRecorder".level=T
872872
quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientRecorder".min-level=TRACE
873873
----
874874

875+
[[oidc-client-filters]]
876+
== Client request customization
877+
878+
You can customize OIDC client requests by registering one or more `OidcClientRequestFiler` implementations which can update or add new request headers, for example, a filter can analyze the request body and add its digest as a new header value:
879+
880+
[source,java]
881+
----
882+
package io.quarkus.it.keycloak;
883+
884+
import jakarta.enterprise.context.ApplicationScoped;
885+
886+
import io.quarkus.arc.Unremovable;
887+
import io.quarkus.oidc.common.OidcClientRequestFilter;
888+
import io.vertx.core.http.HttpMethod;
889+
import io.vertx.mutiny.core.buffer.Buffer;
890+
import io.vertx.mutiny.ext.web.client.HttpRequest;
891+
892+
@ApplicationScoped
893+
@Unremovable
894+
public class OidcClientRequestCustomizer implements OidcClientRequestFilter {
895+
896+
@Override
897+
public void filter(HttpRequest<Buffer> request, Buffer buffer) {
898+
HttpMethod method = request.method();
899+
String uri = request.uri();
900+
if (method == HttpMethod.POST && uri.endsWith("/service") && buffer != null) {
901+
request.putHeader("Digest", calculateDigest(buffer.toString()));
902+
}
903+
}
904+
905+
private String calculateDigest(String bodyString) {
906+
// Apply the required digest algorithm to the body string
907+
}
908+
}
909+
----
910+
875911
[[token-propagation-reactive]]
876912
== Token Propagation Reactive
877913

_versions/main/guides/virtual-threads.adoc

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,10 @@ When it happens, the test fails.
527527
The `@ShouldNotPin` can also be used on methods directly.
528528

529529
The _junit5-virtual-threads_ also provides a `@ShouldPin` annotation for cases where pinning is unavoidable.
530-
The following snippet demonstrates the `@ShouldPin` annotation usage and the possibility to inject a `ThreadPinnedEvents` instance in your test to verify when the carrier thread was pinned manually.
530+
The following snippet demonstrates the `@ShouldPin` annotation usage.
531+
532+
// This is not possible because of a classloading issue - See https://github.com/quarkusio/quarkus/issues/36569 :
533+
// and the possibility to inject a `ThreadPinnedEvents` instance in your test to verify when the carrier thread was pinned manually.
531534

532535
[source, java]
533536
----
@@ -548,14 +551,6 @@ public class LoomUnitExampleTest {
548551
codeUnderTest.pin();
549552
}
550553
551-
@Test
552-
public void testThatShouldNotPin(ThreadPinnedEvents events) { // Inject an object to check the pin events
553-
Assertions.assertTrue(events.getEvents().isEmpty());
554-
codeUnderTest.pin();
555-
await().until(() -> events.getEvents().size() > 0);
556-
Assertions.assertEquals(events.getEvents().size(), 1);
557-
}
558-
559554
}
560555
----
561556

0 commit comments

Comments
 (0)