Skip to content

Commit 739b2e2

Browse files
author
quarkusbot
committed
Sync web site with Quarkus documentation
1 parent 41b6dba commit 739b2e2

16 files changed

+59
-21
lines changed
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.form-field-name","additionalKeys":[],"configDoc":"Form field name which keeps a CSRF token.","withinAMap":false,"defaultValue":"csrf-token","javaDocSiteLink":"","docMapKey":"form-field-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.token-header-name","additionalKeys":[],"configDoc":"Token header which can provide a CSRF token.","withinAMap":false,"defaultValue":"X-CSRF-TOKEN","javaDocSiteLink":"","docMapKey":"token-header-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-name","additionalKeys":[],"configDoc":"CSRF cookie name.","withinAMap":false,"defaultValue":"csrf-token","javaDocSiteLink":"","docMapKey":"cookie-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"java.time.Duration","key":"quarkus.csrf-reactive.cookie-max-age","additionalKeys":[],"configDoc":"CSRF cookie max age.","withinAMap":false,"defaultValue":"10M","javaDocSiteLink":"https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html","docMapKey":"cookie-max-age","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-path","additionalKeys":[],"configDoc":"CSRF cookie path.","withinAMap":false,"defaultValue":"/","javaDocSiteLink":"","docMapKey":"cookie-path","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-domain","additionalKeys":[],"configDoc":"CSRF cookie domain.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"cookie-domain","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.cookie-force-secure","additionalKeys":[],"configDoc":"If enabled the CSRF cookie will have its 'secure' parameter set to 'true' when HTTP is used. It may be necessary when running behind an SSL terminating reverse proxy. The cookie will always be secure if HTTPS is used even if this property is set to false.","withinAMap":false,"defaultValue":"false","javaDocSiteLink":"","docMapKey":"cookie-force-secure","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.cookie-http-only","additionalKeys":[],"configDoc":"Set the HttpOnly attribute to prevent access to the cookie via JavaScript.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"cookie-http-only","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.create-token-path","additionalKeys":[],"configDoc":"Create CSRF token only if the HTTP GET relative request path matches one of the paths configured with this property. Use a comma to separate multiple path values.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"create-token-path","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":true,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"int","key":"quarkus.csrf-reactive.token-size","additionalKeys":[],"configDoc":"Random CSRF token size in bytes.","withinAMap":false,"defaultValue":"16","javaDocSiteLink":"","docMapKey":"token-size","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.token-signature-key","additionalKeys":[],"configDoc":"CSRF token HMAC signature key, if this key is set then it must be at least 32 characters long.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"token-signature-key","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.verify-token","additionalKeys":[],"configDoc":"Verify CSRF token in the CSRF filter. If you prefer then you can disable this property and compare CSRF form and cookie parameters in the application code using JAX-RS jakarta.ws.rs.FormParam which refers to the `form-field-name` form property and jakarta.ws.rs.CookieParam which refers to the `CsrfReactiveConfig++#++cookieName` cookie. Note that even if the CSRF token verification in the CSRF filter is disabled, the filter will still perform checks to ensure the token is available, has the correct `token-size` in bytes and that the Content-Type HTTP header is either 'application/x-www-form-urlencoded' or 'multipart/form-data'.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"verify-token","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.require-form-url-encoded","additionalKeys":[],"configDoc":"Require that only 'application/x-www-form-urlencoded' or 'multipart/form-data' body is accepted for the token verification to proceed. Disable this property for the CSRF filter to avoid verifying the token for POST requests with other content types. This property is only effective if `verify-token` property is enabled and `token-header-name` is not configured.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"require-form-url-encoded","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}}]
1+
[{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.form-field-name","additionalKeys":[],"configDoc":"Form field name which keeps a CSRF token.","withinAMap":false,"defaultValue":"csrf-token","javaDocSiteLink":"","docMapKey":"form-field-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.token-header-name","additionalKeys":[],"configDoc":"Token header which can provide a CSRF token.","withinAMap":false,"defaultValue":"X-CSRF-TOKEN","javaDocSiteLink":"","docMapKey":"token-header-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-name","additionalKeys":[],"configDoc":"CSRF cookie name.","withinAMap":false,"defaultValue":"csrf-token","javaDocSiteLink":"","docMapKey":"cookie-name","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"java.time.Duration","key":"quarkus.csrf-reactive.cookie-max-age","additionalKeys":[],"configDoc":"CSRF cookie max age.","withinAMap":false,"defaultValue":"2H","javaDocSiteLink":"https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html","docMapKey":"cookie-max-age","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-path","additionalKeys":[],"configDoc":"CSRF cookie path.","withinAMap":false,"defaultValue":"/","javaDocSiteLink":"","docMapKey":"cookie-path","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.cookie-domain","additionalKeys":[],"configDoc":"CSRF cookie domain.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"cookie-domain","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.cookie-force-secure","additionalKeys":[],"configDoc":"If enabled the CSRF cookie will have its 'secure' parameter set to 'true' when HTTP is used. It may be necessary when running behind an SSL terminating reverse proxy. The cookie will always be secure if HTTPS is used even if this property is set to false.","withinAMap":false,"defaultValue":"false","javaDocSiteLink":"","docMapKey":"cookie-force-secure","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.cookie-http-only","additionalKeys":[],"configDoc":"Set the HttpOnly attribute to prevent access to the cookie via JavaScript.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"cookie-http-only","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.create-token-path","additionalKeys":[],"configDoc":"Create CSRF token only if the HTTP GET relative request path matches one of the paths configured with this property. Use a comma to separate multiple path values.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"create-token-path","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":true,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"int","key":"quarkus.csrf-reactive.token-size","additionalKeys":[],"configDoc":"Random CSRF token size in bytes.","withinAMap":false,"defaultValue":"16","javaDocSiteLink":"","docMapKey":"token-size","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"string","key":"quarkus.csrf-reactive.token-signature-key","additionalKeys":[],"configDoc":"CSRF token HMAC signature key, if this key is set then it must be at least 32 characters long.","withinAMap":false,"defaultValue":"","javaDocSiteLink":"","docMapKey":"token-signature-key","configPhase":"RUN_TIME","acceptedValues":null,"optional":true,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.verify-token","additionalKeys":[],"configDoc":"Verify CSRF token in the CSRF filter. If you prefer then you can disable this property and compare CSRF form and cookie parameters in the application code using JAX-RS jakarta.ws.rs.FormParam which refers to the `form-field-name` form property and jakarta.ws.rs.CookieParam which refers to the `CsrfReactiveConfig++#++cookieName` cookie. Note that even if the CSRF token verification in the CSRF filter is disabled, the filter will still perform checks to ensure the token is available, has the correct `token-size` in bytes and that the Content-Type HTTP header is either 'application/x-www-form-urlencoded' or 'multipart/form-data'.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"verify-token","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}},{"configDocKey":{"type":"boolean","key":"quarkus.csrf-reactive.require-form-url-encoded","additionalKeys":[],"configDoc":"Require that only 'application/x-www-form-urlencoded' or 'multipart/form-data' body is accepted for the token verification to proceed. Disable this property for the CSRF filter to avoid verifying the token for POST requests with other content types. This property is only effective if `verify-token` property is enabled and `token-header-name` is not configured.","withinAMap":false,"defaultValue":"true","javaDocSiteLink":"","docMapKey":"require-form-url-encoded","configPhase":"RUN_TIME","acceptedValues":null,"optional":false,"list":false,"passThroughMap":false,"withinAConfigGroup":false,"topLevelGrouping":"quarkus.csrf-reactive","enum":false}}]

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

+4
Original file line numberDiff line numberDiff line change
@@ -1832,6 +1832,10 @@ a| `String providerClass` :: +++<i>No Javadoc found</i>+++
18321832
[%header,cols=2*]
18331833
|===
18341834
|Class Name |Attributes
1835+
a| https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/BuiltInReaderOverrideBuildItem.java[`io.quarkus.resteasy.reactive.server.deployment.BuiltInReaderOverrideBuildItem`, window="_blank"] :: +++<i>No Javadoc found</i>+++
1836+
a| `String readerClassName` :: +++<i>No Javadoc found</i>+++
1837+
`String overrideClassName` :: +++<i>No Javadoc found</i>+++
1838+
18351839
a| https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ContextResolversBuildItem.java[`io.quarkus.resteasy.reactive.server.deployment.ContextResolversBuildItem`, window="_blank"] :: +++<i>No Javadoc found</i>+++
18361840
a| `ContextResolvers contextResolvers` :: +++<i>No Javadoc found</i>+++
18371841

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -4658,7 +4658,7 @@ Environment variable: `+++QUARKUS_CSRF_REACTIVE_COOKIE_MAX_AGE+++`
46584658
endif::add-copy-button-to-env-var[]
46594659
--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration]
46604660
link:#duration-note-anchor-{summaryTableId}[icon:question-circle[], title=More information about the Duration format]
4661-
|`10M`
4661+
|`2H`
46624662

46634663

46644664
a| [[quarkus-csrf-reactive_quarkus.csrf-reactive.cookie-path]]`link:#quarkus-csrf-reactive_quarkus.csrf-reactive.cookie-path[quarkus.csrf-reactive.cookie-path]`

_generated-doc/latest/config/quarkus-csrf-reactive-csrf-reactive-config.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Environment variable: `+++QUARKUS_CSRF_REACTIVE_COOKIE_MAX_AGE+++`
7676
endif::add-copy-button-to-env-var[]
7777
--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration]
7878
link:#duration-note-anchor-{summaryTableId}[icon:question-circle[], title=More information about the Duration format]
79-
|`10M`
79+
|`2H`
8080

8181

8282
a| [[quarkus-csrf-reactive-csrf-reactive-config_quarkus.csrf-reactive.cookie-path]]`link:#quarkus-csrf-reactive-csrf-reactive-config_quarkus.csrf-reactive.cookie-path[quarkus.csrf-reactive.cookie-path]`

_generated-doc/latest/config/quarkus-csrf-reactive.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Environment variable: `+++QUARKUS_CSRF_REACTIVE_COOKIE_MAX_AGE+++`
9393
endif::add-copy-button-to-env-var[]
9494
--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration]
9595
link:#duration-note-anchor-{summaryTableId}[icon:question-circle[], title=More information about the Duration format]
96-
|`10M`
96+
|`2H`
9797

9898

9999
a| [[quarkus-csrf-reactive_quarkus.csrf-reactive.cookie-path]]`link:#quarkus-csrf-reactive_quarkus.csrf-reactive.cookie-path[quarkus.csrf-reactive.cookie-path]`

_guides/_attributes.adoc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Common attributes.
22
// --> No blank lines (it ends the document header)
33
:project-name: Quarkus
4-
:quarkus-version: 3.6.4
4+
:quarkus-version: 3.6.5
55
:quarkus-platform-groupid: io.quarkus.platform
66
// .
77
:maven-version: 3.9.6
@@ -21,7 +21,7 @@
2121
:keycloak-docker-image: quay.io/keycloak/keycloak:23.0.0
2222
:jandex-version: 3.1.6
2323
:jandex-gradle-plugin-version: 1.0.0
24-
:kotlin-version: 1.9.21
24+
:kotlin-version: 1.9.22
2525
:grpc-version: 1.59.0
2626
:protoc-version: 3.24.4
2727
:gcf-invoker-version: 1.3.0

_guides/cache.adoc

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ include::_attributes.adoc[]
1212

1313
In this guide, you will learn how to enable application data caching in any CDI managed bean of your Quarkus application.
1414

15-
include::{includes}/extension-status.adoc[]
16-
1715
== Prerequisites
1816

1917
include::{includes}/prerequisites.adoc[]

_guides/getting-started-testing.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1088,7 +1088,7 @@ or starting a mock HTTP server using https://wiremock.org/[Wiremock] (an example
10881088

10891089

10901090
=== Altering the test class
1091-
When creating a custom `QuarkusTestResourceLifecycleManager` that needs to inject the something into the test class, the `inject` methods can be used.
1091+
When creating a custom `QuarkusTestResourceLifecycleManager` that needs to inject something into the test class, the `inject` methods can be used.
10921092
If for example you have a test like the following:
10931093

10941094
[source,java]

_guides/kafka-dev-services.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ For Strimzi, you can select any image with a Kafka version which has Kraft suppo
8282

8383
[source, properties]
8484
----
85-
quarkus.kafka.devservices.image-name=quay.io/strimzi-test-container/test-container:0.100.0-kafka-3.1.0
85+
quarkus.kafka.devservices.image-name=quay.io/strimzi-test-container/test-container:0.105.0-kafka-3.6.0
8686
----
8787

8888
== Configuring Kafka topics

_guides/kafka-reactive-getting-started.adoc

+2-2
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ version: '3.5'
407407
services:
408408
409409
zookeeper:
410-
image: quay.io/strimzi/kafka:0.23.0-kafka-2.8.0
410+
image: quay.io/strimzi/kafka:0.39.0-kafka-3.6.1
411411
command: [
412412
"sh", "-c",
413413
"bin/zookeeper-server-start.sh config/zookeeper.properties"
@@ -420,7 +420,7 @@ services:
420420
- kafka-quickstart-network
421421
422422
kafka:
423-
image: quay.io/strimzi/kafka:0.23.0-kafka-2.8.0
423+
image: quay.io/strimzi/kafka:0.39.0-kafka-3.6.1
424424
command: [
425425
"sh", "-c",
426426
"bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}"

_guides/kafka-schema-registry-avro.adoc

+4-4
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ version: '2'
324324
services:
325325
326326
zookeeper:
327-
image: quay.io/strimzi/kafka:0.22.1-kafka-2.7.0
327+
image: quay.io/strimzi/kafka:0.39.0-kafka-3.6.1
328328
command: [
329329
"sh", "-c",
330330
"bin/zookeeper-server-start.sh config/zookeeper.properties"
@@ -335,7 +335,7 @@ services:
335335
LOG_DIR: /tmp/logs
336336
337337
kafka:
338-
image: quay.io/strimzi/kafka:0.22.1-kafka-2.7.0
338+
image: quay.io/strimzi/kafka:0.39.0-kafka-3.6.1
339339
command: [
340340
"sh", "-c",
341341
"bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}"
@@ -545,7 +545,7 @@ If we couldn't use Dev Services and wanted to start a Kafka broker and Apicurio
545545
<dependency>
546546
<groupId>io.strimzi</groupId>
547547
<artifactId>strimzi-test-container</artifactId>
548-
<version>0.22.1</version>
548+
<version>0.105.0</version>
549549
<scope>test</scope>
550550
<exclusions>
551551
<exclusion>
@@ -559,7 +559,7 @@ If we couldn't use Dev Services and wanted to start a Kafka broker and Apicurio
559559
[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"]
560560
.build.gradle
561561
----
562-
testImplementation("io.strimzi:strimzi-test-container:0.22.1") {
562+
testImplementation("io.strimzi:strimzi-test-container:0.105.0") {
563563
exclude group: "org.apache.logging.log4j", module: "log4j-core"
564564
}
565565
----

0 commit comments

Comments
 (0)